diff --git a/CMakeLists.txt b/CMakeLists.txt index 140cc48..34caa1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,8 +75,9 @@ target_link_libraries(${PROJECT_NAME} PRIVATE settings-ui) install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) install(DIRECTORY src/images/ DESTINATION ${SETTINGS_DATA_DIR}/images) +cutefish_add_translations(cutefish-settings SOURCES src DESKTOP_FILES cutefish-settings.desktop) install(FILES - cutefish-settings.desktop + ${CMAKE_CURRENT_BINARY_DIR}/cutefish-settings.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications ) diff --git a/cutefish-settings.desktop b/cutefish-settings.desktop index b1d1fd6..bc4c66e 100644 --- a/cutefish-settings.desktop +++ b/cutefish-settings.desktop @@ -1,6 +1,5 @@ [Desktop Entry] Name=Settings -Name[zh_CN]=设置 Exec=/usr/bin/cutefish-settings Icon=preferences-system Terminal=false diff --git a/po/cutefish-settings.pot b/po/cutefish-settings.pot new file mode 100644 index 0000000..bdea59c --- /dev/null +++ b/po/cutefish-settings.pot @@ -0,0 +1,2409 @@ +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: cutefish-settings\n" +"Report-Msgid-Bugs-To: https://github.com/cutefishos\n" +"POT-Creation-Date: 2026-10-19 23:02+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: src/pages/about/aboutinfo.cpp +msgid "Unknown" +msgstr "" + +#. TRANSLATORS: a processor model and its number of cores, such as "Intel Core i5 x 8". +#: src/pages/about/aboutinfo.cpp +#, python-brace-format +msgid "{model} x {count}" +msgstr "" + +#: src/pages/about/aboutinfo.cpp +msgid "B" +msgstr "" + +#: src/pages/about/aboutinfo.cpp +msgid "KB" +msgstr "" + +#: src/pages/about/aboutinfo.cpp +msgid "MB" +msgstr "" + +#: src/pages/about/aboutinfo.cpp +msgid "GB" +msgstr "" + +#: src/pages/about/aboutinfo.cpp +msgid "TB" +msgstr "" + +#: src/pages/about/aboutinfo.cpp +msgid "PB" +msgstr "" + +#: src/pages/about/aboutinfo.cpp +msgid "EB" +msgstr "" + +#: src/pages/about/aboutinfo.cpp +msgid "ZB" +msgstr "" + +#: src/pages/about/aboutinfo.cpp +msgid "YB" +msgstr "" + +#. TRANSLATORS: a size, such as "16 GB". +#: src/pages/about/aboutinfo.cpp +#, python-brace-format +msgid "{value} {unit}" +msgstr "" + +#. TRANSLATORS: the space used on the system disk and its size, such as "40 GB / 256 GB". +#: src/pages/about/aboutinfo.cpp +#, python-brace-format +msgid "{used} / {total}" +msgstr "" + +#: src/pages/about/aboutpage.cpp src/window/pagelist.cpp +msgid "About" +msgstr "" + +#: src/pages/about/aboutpage.cpp +#, python-brace-format +msgid "Running on {system}" +msgstr "" + +#: src/pages/about/aboutpage.cpp +msgid "Model" +msgstr "" + +#: src/pages/about/aboutpage.cpp +msgid "System version" +msgstr "" + +#: src/pages/about/aboutpage.cpp +msgid "System type" +msgstr "" + +#: src/pages/about/aboutpage.cpp +msgid "Kernel version" +msgstr "" + +#: src/pages/about/aboutpage.cpp +msgid "Processor" +msgstr "" + +#: src/pages/about/aboutpage.cpp +msgid "RAM" +msgstr "" + +#: src/pages/about/aboutpage.cpp +msgid "Internal storage" +msgstr "" + +#: src/pages/accounts/accountspage.cpp src/window/pagelist.cpp +msgid "Users" +msgstr "" + +#: src/pages/accounts/accountspage.cpp +msgid "Add user" +msgstr "" + +#: src/pages/accounts/accountspage.cpp src/pages/wallpaper/wallpaperpage.cpp +#, python-brace-format +msgid "Image files ({patterns})" +msgstr "" + +#: src/pages/accounts/accountspage.cpp src/pages/network/vpn/vpndialogs.cpp +#: src/pages/network/vpn/vpnpage.cpp +msgid "All files (*)" +msgstr "" + +#: src/pages/accounts/accountspage.cpp src/pages/accounts/userdetailsdialog.cpp +msgid "Delete this user" +msgstr "" + +#: src/pages/accounts/accountspage.cpp +#, python-brace-format +msgid "Delete user “{name}”? Their home directory and its contents will be permanently deleted. This cannot be undone." +msgstr "" + +#: src/pages/accounts/accountspage.cpp src/pages/accounts/userdialogs.cpp +#: src/pages/datetime/timezonedialog.cpp +#: src/pages/language/addlanguagedialog.cpp +#: src/pages/network/common/ipsettingsview.cpp +#: src/pages/network/hotspot/hotspotpage.cpp +#: src/pages/network/vpn/vpndialogs.cpp +#: src/pages/network/wlan/newnetworkdialog.cpp +#: src/pages/shortcuts/shortcuteditdialog.cpp +#: src/pages/shortcuts/shortcutspage.cpp +msgid "Cancel" +msgstr "" + +#: src/pages/accounts/accountspage.cpp +msgid "Delete" +msgstr "" + +#: src/pages/accounts/userdetailsdialog.cpp src/pages/accounts/userdialogs.cpp +msgid "Account type" +msgstr "" + +#: src/pages/accounts/userdetailsdialog.cpp +msgid "Change password…" +msgstr "" + +#: src/pages/accounts/userdetailsdialog.cpp src/pages/accounts/userdialogs.cpp +msgid "Standard" +msgstr "" + +#: src/pages/accounts/userdetailsdialog.cpp src/pages/accounts/userdialogs.cpp +msgid "Administrator" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp +msgid "Change password" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp +msgid "Current password" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp +msgid "New password" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp src/pages/network/hotspot/hotspotpage.cpp +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "Password" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp +msgid "Verify password" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp +msgid "The current password is incorrect" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp +msgid "The new password was not accepted" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp +msgid "The password could not be changed" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp +msgid "The password change did not finish in time" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp +msgid "Add new user" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp +msgid "User name" +msgstr "" + +#: src/pages/accounts/userdialogs.cpp src/pages/language/addlanguagedialog.cpp +#: src/pages/network/vpn/vpndialogs.cpp +msgid "Add" +msgstr "" + +#: src/pages/accounts/userrow.cpp +msgid "Logged in" +msgstr "" + +#: src/pages/appearance/appearancepage.cpp src/window/pagelist.cpp +msgid "Appearance" +msgstr "" + +#: src/pages/appearance/appearancepage.cpp +msgid "Light" +msgstr "" + +#: src/pages/appearance/appearancepage.cpp +msgid "Dark" +msgstr "" + +#: src/pages/appearance/appearancepage.cpp +msgid "Auto" +msgstr "" + +#: src/pages/appearance/appearancepage.cpp +msgid "Accent color" +msgstr "" + +#: src/pages/appearance/appearancepage.cpp src/pages/fonts/fontspage.cpp +#: src/window/pagelist.cpp +msgid "Fonts" +msgstr "" + +#: src/pages/appearance/appearancepage.cpp +#: src/pages/icontheme/iconthemepage.cpp src/window/pagelist.cpp +msgid "Icon Theme" +msgstr "" + +#: src/pages/appearance/appearancepage.cpp +#: src/pages/cursortheme/cursorthemepage.cpp src/window/pagelist.cpp +msgid "Cursor Style" +msgstr "" + +#: src/pages/battery/battery.cpp +#, python-brace-format +msgid "Today at {time}" +msgstr "" + +#: src/pages/battery/battery.cpp +#, python-brace-format +msgid "Yesterday at {time}" +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "History" +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "24 hours" +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "7 days" +msgstr "" + +#: src/pages/battery/batterypage.cpp src/window/pagelist.cpp +msgid "Battery" +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "Health" +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "Condition" +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "Maximum capacity" +msgstr "" + +#: src/pages/battery/batterypage.cpp src/pages/battery/historygraph.cpp +msgid "Charging" +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "Show percentage in status bar" +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "Excellent" +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "Normal" +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "Poor" +msgstr "" + +#. TRANSLATORS: a percentage, such as "92%". +#: src/pages/battery/batterypage.cpp src/pages/display/displaypage.cpp +#: src/pages/network/common/detailsdialog.cpp +#, python-brace-format +msgid "{percent}%" +msgstr "" + +#: src/pages/battery/batterypage.cpp +#, python-brace-format +msgid "Last charged to {percent}%" +msgstr "" + +#: src/pages/battery/batterypage.cpp +#, python-brace-format +msgid "Limit charging to {percent}%" +msgstr "" + +#: src/pages/battery/batterypage.cpp +#, python-brace-format +msgid "While plugged in, charging stops at {end}% and resumes below {start}%, so the battery wears more slowly." +msgstr "" + +#: src/pages/battery/batterypage.cpp +msgid "This computer's battery controller did not keep the limit, so the battery still charges fully." +msgstr "" + +#: src/pages/battery/historygraph.cpp +msgid "Fully charged" +msgstr "" + +#: src/pages/battery/historygraph.cpp +msgid "Not charging" +msgstr "" + +#: src/pages/battery/historygraph.cpp +msgid "On battery" +msgstr "" + +#: src/pages/battery/historygraph.cpp +msgid "Plugged in" +msgstr "" + +#. TRANSLATORS: a weekday and a time in the graph's readout, such as "Mon 9:41 AM". +#: src/pages/battery/historygraph.cpp +#, python-brace-format +msgid "{day} {time}" +msgstr "" + +#. TRANSLATORS: the battery state and the time in the graph's readout, such as "Charging · 9:41 AM". +#: src/pages/battery/historygraph.cpp +#, python-brace-format +msgid "{state} · {time}" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Audio device" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Headphones" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Headset" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Camera" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Video camera" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Computer" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Game controller" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp src/pages/keyboard/keyboardpage.cpp +#: src/window/pagelist.cpp +msgid "Keyboard" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp src/pages/mouse/mousepage.cpp +#: src/window/pagelist.cpp +msgid "Mouse" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Drawing tablet" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Modem" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Media player" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Network device" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Phone" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Printer" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Scanner" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp src/pages/display/displaypage.cpp +#: src/window/pagelist.cpp +msgid "Display" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp src/pages/network/vpn/vpneditor.cpp +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "Name" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp src/pages/network/vpn/vpneditor.cpp +msgid "Address" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Powered" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Visible to other devices" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Allow incoming pairing" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +#: src/pages/network/common/detailsdialog.cpp +msgid "Close" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Device type" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Model number" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Version" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Trusted" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "Blocked" +msgstr "" + +#: src/pages/bluetooth/bluetoothdialogs.cpp +msgid "Forget this device" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp src/pages/network/vpn/vpndialogs.cpp +msgid "Connected" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp src/pages/network/vpn/vpndialogs.cpp +msgid "Not connected" +msgstr "" + +#. TRANSLATORS: a device's connection and its battery level, such as "Connected · 80%". +#: src/pages/bluetooth/bluetoothpage.cpp +#, python-brace-format +msgid "{status} · {percent}%" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "Cancel pairing" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "Disconnect" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "Discoverable" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "Not discoverable" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp src/pages/sound/soundpage.cpp +#: src/window/pagelist.cpp +msgid "Bluetooth" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "My devices" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "Other devices" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "Bluetooth service is unavailable" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "Bluetooth is blocked by a hardware switch" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "No Bluetooth adapters found" +msgstr "" + +#: src/pages/bluetooth/bluetoothpage.cpp +msgid "No devices found. Make sure your device is discoverable." +msgstr "" + +#: src/pages/cursortheme/cursorthemepage.cpp +msgid "Cursor theme" +msgstr "" + +#: src/pages/cursortheme/cursorthemepage.cpp +msgid "Cursor size" +msgstr "" + +#: src/pages/datetime/datetimepage.cpp src/window/pagelist.cpp +msgid "Date & Time" +msgstr "" + +#: src/pages/datetime/datetimepage.cpp +msgid "Auto sync" +msgstr "" + +#: src/pages/datetime/datetimepage.cpp +msgid "24-hour time" +msgstr "" + +#: src/pages/datetime/datetimepage.cpp +msgid "Time zone" +msgstr "" + +#: src/pages/datetime/datetimepage.cpp +msgid "Unable to use auto sync. Please ensure your NTP service is installed." +msgstr "" + +#: src/pages/datetime/timezonedialog.cpp +msgid "Search city or country" +msgstr "" + +#: src/pages/datetime/timezonedialog.cpp +msgid "No matching time zones" +msgstr "" + +#: src/pages/datetime/timezonedialog.cpp +msgid "Time Zone" +msgstr "" + +#. TRANSLATORS: the button that makes the chosen time zone the system's. +#: src/pages/datetime/timezonedialog.cpp +msgid "Set" +msgstr "" + +#: src/pages/datetime/timezonedialog.cpp +msgid "Click the map or search to choose a time zone" +msgstr "" + +#. TRANSLATORS: a time zone's city and its country or region, such as "Paris, France". +#: src/pages/datetime/timezonedialog.cpp +#, python-brace-format +msgid "{city}, {region}" +msgstr "" + +#: src/pages/datetime/timezonedialog.cpp +msgid "Current time zone" +msgstr "" + +#: src/pages/datetime/timezonedialog.cpp +#, python-brace-format +msgid "Currently {zone}" +msgstr "" + +#: src/pages/datetime/timezonemap.cpp +msgid "Same time as now" +msgstr "" + +#: src/pages/datetime/timezonemap.cpp +#, python-brace-format +msgid "{n} hour ahead" +msgid_plural "{n} hours ahead" +msgstr[0] "" +msgstr[1] "" + +#: src/pages/datetime/timezonemap.cpp +#, python-brace-format +msgid "{n} hour behind" +msgid_plural "{n} hours behind" +msgstr[0] "" +msgstr[1] "" + +#: src/pages/datetime/timezonemap.cpp +#, python-brace-format +msgid "{n} min ahead" +msgid_plural "{n} min ahead" +msgstr[0] "" +msgstr[1] "" + +#: src/pages/datetime/timezonemap.cpp +#, python-brace-format +msgid "{n} min behind" +msgid_plural "{n} min behind" +msgstr[0] "" +msgstr[1] "" + +#: src/pages/datetime/timezonemap.cpp +#, python-brace-format +msgid "{hours} h {minutes} min ahead" +msgstr "" + +#: src/pages/datetime/timezonemap.cpp +#, python-brace-format +msgid "{hours} h {minutes} min behind" +msgstr "" + +#: src/pages/datetime/timezonemap.cpp +msgid "Tomorrow" +msgstr "" + +#: src/pages/datetime/timezonemap.cpp +msgid "Yesterday" +msgstr "" + +#: src/pages/defaultapps/defaultappspage.cpp src/window/pagelist.cpp +msgid "Default Applications" +msgstr "" + +#: src/pages/defaultapps/defaultappspage.cpp +msgid "Web browser" +msgstr "" + +#: src/pages/defaultapps/defaultappspage.cpp +msgid "Email client" +msgstr "" + +#: src/pages/defaultapps/defaultappspage.cpp +msgid "Terminal" +msgstr "" + +#: src/pages/defaultapps/defaultappspage.cpp +msgid "Video player" +msgstr "" + +#: src/pages/defaultapps/defaultappspage.cpp src/pages/fonts/fontspage.cpp +#: src/pages/hotcorners/hotcornerspage.cpp src/pages/keyboard/keyboardpage.cpp +#: src/pages/shortcuts/shortcutspage.cpp +msgid "None" +msgstr "" + +#: src/pages/display/displaypage.cpp +#, python-brace-format +msgid "{item} (Recommended)" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Brightness" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Resolution" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Refresh rate" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Scale" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Rotation" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgctxt "rotation" +msgid "Normal" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Enabled" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Primary" +msgstr "" + +#: src/pages/display/displaypage.cpp src/pages/power/powerpage.cpp +msgid "Mode" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Position" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Night Light" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Color temperature" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Less warm" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "More warm" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Schedule" +msgstr "" + +#: src/pages/display/displaypage.cpp src/pages/power/powerpage.cpp +msgid "Never" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Sunset to sunrise" +msgstr "" + +#: src/pages/display/displaypage.cpp src/pages/shortcuts/shortcuteditdialog.cpp +msgid "Custom" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Sunset" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Sunrise" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "From" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "To" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Screen" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Display configuration is unavailable in this session." +msgstr "" + +#: src/pages/display/displaypage.cpp +#, python-brace-format +msgid "The previous settings come back in {n} second." +msgid_plural "The previous settings come back in {n} seconds." +msgstr[0] "" +msgstr[1] "" + +#: src/pages/display/displaypage.cpp +msgid "Keep these display settings?" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Revert" +msgstr "" + +#: src/pages/display/displaypage.cpp +msgid "Keep" +msgstr "" + +#: src/pages/dock/dockpage.cpp src/window/pagelist.cpp +msgid "Dock" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Position on screen" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Left" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Bottom" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Right" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Size" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Small" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Huge" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Glass effect" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "More clear" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "More tinted" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Display mode" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Always show" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Always hide" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Smart hide" +msgstr "" + +#: src/pages/dock/dockpage.cpp src/pages/hotcorners/hotcornerspage.cpp +#: src/window/pagelist.cpp +msgid "Hot Corners" +msgstr "" + +#: src/pages/dock/dockpage.cpp +msgid "Minimized windows area" +msgstr "" + +#. TRANSLATORS: a font size in points, such as "9pt". +#: src/pages/fonts/fontspage.cpp +#, python-brace-format +msgid "{size}pt" +msgstr "" + +#: src/pages/fonts/fontspage.cpp +msgid "General font" +msgstr "" + +#: src/pages/fonts/fontspage.cpp +msgid "Fixed font" +msgstr "" + +#: src/pages/fonts/fontspage.cpp +#, python-brace-format +msgid "{size} (Default)" +msgstr "" + +#: src/pages/fonts/fontspage.cpp +msgid "Font size" +msgstr "" + +#: src/pages/fonts/fontspage.cpp +msgid "Hinting" +msgstr "" + +#: src/pages/fonts/fontspage.cpp +msgid "Slight" +msgstr "" + +#: src/pages/fonts/fontspage.cpp +msgid "Medium" +msgstr "" + +#: src/pages/fonts/fontspage.cpp +msgid "Full" +msgstr "" + +#: src/pages/fonts/fontspage.cpp +msgid "Anti-Aliasing" +msgstr "" + +#: src/pages/hotcorners/hotcorners.cpp src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Control" +msgstr "" + +#: src/pages/hotcorners/hotcorners.cpp src/pages/keyboard/keyboardpage.cpp +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Ctrl" +msgstr "" + +#: src/pages/hotcorners/hotcorners.cpp src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Option" +msgstr "" + +#: src/pages/hotcorners/hotcorners.cpp src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Alt" +msgstr "" + +#: src/pages/hotcorners/hotcorners.cpp src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Shift" +msgstr "" + +#: src/pages/hotcorners/hotcorners.cpp src/pages/keyboard/keyboardpage.cpp +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Command" +msgstr "" + +#: src/pages/hotcorners/hotcorners.cpp src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Meta" +msgstr "" + +#: src/pages/hotcorners/hotcornerspage.cpp +msgid "Show All Windows" +msgstr "" + +#: src/pages/hotcorners/hotcornerspage.cpp +msgid "Show Desktop" +msgstr "" + +#: src/pages/hotcorners/hotcornerspage.cpp +msgid "Launcher" +msgstr "" + +#: src/pages/hotcorners/hotcornerspage.cpp +msgid "Lock Screen" +msgstr "" + +#: src/pages/hotcorners/hotcornerspage.cpp +msgid "Hot corners are managed by the Cutefish compositor, which is not running." +msgstr "" + +#: src/pages/hotcorners/hotcornerspage.cpp +msgid "Top left" +msgstr "" + +#: src/pages/hotcorners/hotcornerspage.cpp +msgid "Top right" +msgstr "" + +#: src/pages/hotcorners/hotcornerspage.cpp +msgid "Bottom left" +msgstr "" + +#: src/pages/hotcorners/hotcornerspage.cpp +msgid "Bottom right" +msgstr "" + +#: src/pages/hotcorners/hotcornerspage.cpp +msgid "Move the pointer into a corner of the screen to run its action. Hold modifier keys while choosing an action to make the corner work only while they are held." +msgstr "" + +#. TRANSLATORS: the keys a hot corner needs held and its action, such as "Ctrl + Alt – Lock Screen". +#: src/pages/hotcorners/hotcornerspage.cpp +#, python-brace-format +msgid "{keys} – {action}" +msgstr "" + +#: src/pages/icontheme/iconthemepage.cpp +msgid "Icon theme" +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp +msgid "Input method" +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp +msgid "Input methods can only be selected in a Cutefish Wayland session." +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp +msgid "The selected input method is not running." +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp +msgid "Applications started before the input method may need to be restarted." +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp +msgid "Shortcut key" +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp src/pages/keyboard/layoutpage.cpp +msgid "Layout" +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp src/pages/shortcuts/shortcutspage.cpp +#: src/window/pagelist.cpp +msgid "Keyboard Shortcuts" +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp +msgid "Key repeat" +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp +msgid "Delay until repeat" +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp +msgid "Repeat rate" +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp +msgid "The key next to the space bar works as Command and the one beside it as Option, on any keyboard: Command+C copies, Command+Tab switches windows, Command+Q quits. The shortcuts can be changed in Keyboard Shortcuts." +msgstr "" + +#: src/pages/keyboard/keyboardpage.cpp +msgid "Ctrl is the shortcut key and Alt switches windows. The shortcuts can be changed in Keyboard Shortcuts." +msgstr "" + +#: src/pages/keyboard/layoutpage.cpp +msgid "No layouts found" +msgstr "" + +#: src/pages/keyboard/layoutpage.cpp +msgid "Search layouts" +msgstr "" + +#: src/pages/language/addlanguagedialog.cpp +msgid "Add Language" +msgstr "" + +#: src/pages/language/addlanguagedialog.cpp +msgid "Search languages" +msgstr "" + +#: src/pages/language/addlanguagedialog.cpp +msgid "Loading languages…" +msgstr "" + +#: src/pages/language/addlanguagedialog.cpp +msgid "No languages found" +msgstr "" + +#: src/pages/language/language.cpp +msgid "Could not save preferred languages. Please try again." +msgstr "" + +#: src/pages/language/languagepage.cpp src/window/pagelist.cpp +msgid "Language" +msgstr "" + +#: src/pages/language/languagepage.cpp +msgid "Preferred languages" +msgstr "" + +#: src/pages/language/languagepage.cpp +msgid "Drag a language to the top to make it the system language. Right-click a language to remove it." +msgstr "" + +#: src/pages/language/languagepage.cpp +msgid "Add language…" +msgstr "" + +#: src/pages/language/preferredlanguagelist.cpp +msgid "System language" +msgstr "" + +#: src/pages/language/preferredlanguagelist.cpp +msgid "Remove language" +msgstr "" + +#: src/pages/mouse/mousepage.cpp +msgid "Left hand" +msgstr "" + +#: src/pages/mouse/mousepage.cpp src/pages/touchpad/touchpadpage.cpp +msgid "Natural scrolling" +msgstr "" + +#: src/pages/mouse/mousepage.cpp +msgid "Mouse acceleration" +msgstr "" + +#: src/pages/mouse/mousepage.cpp src/pages/touchpad/touchpadpage.cpp +msgid "Pointer speed" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +msgid "Auto-Join" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +msgid "Connect Automatically" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +msgid "IP Settings" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "Security" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +msgid "Signal" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +#: src/pages/network/vpn/vpndialogs.cpp +msgid "IPv4 address" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +msgid "IPv6 address" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +msgid "MAC address" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +msgid "Gateway" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +#: src/pages/network/vpn/vpneditor.cpp +msgid "DNS" +msgstr "" + +#: src/pages/network/common/detailsdialog.cpp +msgid "Forget this network" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +msgid "Configure IPv4" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +msgid "IP Address" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +#: src/pages/network/vpn/vpneditor.cpp +msgid "Required" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +msgid "Subnet Mask" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +msgid "Router" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +#: src/pages/network/vpn/vpneditor.cpp +msgid "Optional" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +msgid "Configure IPv6" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +msgid "Prefix Length" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +msgid "Automatic DNS" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +msgid "DNS Servers" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +#: src/pages/network/proxy/proxypage.cpp src/pages/network/vpn/vpndialogs.cpp +msgid "Save" +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +msgid "These servers are asked before the network's own." +msgstr "" + +#: src/pages/network/common/ipsettingsview.cpp +#: src/pages/network/vpn/vpndialogs.cpp +msgid "Saving…" +msgstr "" + +#: src/pages/network/ethernet/ethernetpage.cpp src/window/pagelist.cpp +msgid "Ethernet" +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp src/pages/network/networkpage.cpp +#: src/pages/network/wlan/wlanpage.cpp src/window/pagelist.cpp +msgid "Hotspot" +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "Wi-Fi hotspot" +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "Network name" +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "Generate password" +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "Turn On Wi-Fi Hotspot?" +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +#, python-brace-format +msgid "Turning on the hotspot will disconnect from “{network}”, and you will not have access to the internet it provides." +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "Turn on" +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "Share this computer's internet connection by creating a Wi-Fi network other devices can join. The connection to share must come from a source other than Wi-Fi." +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "Turn on Wi-Fi to use the hotspot." +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "System policy prohibits use as a hotspot." +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +#, python-brace-format +msgid "Other devices can join “{network}” with the password below. Turn off the hotspot to use Wi-Fi on this computer." +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "Network name cannot be empty." +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "Network name is too long." +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "The password must have at least 8 characters." +msgstr "" + +#: src/pages/network/hotspot/hotspotpage.cpp +msgid "The password must have at most 63 characters." +msgstr "" + +#: src/pages/network/networkpage.cpp src/window/pagelist.cpp +msgid "Network" +msgstr "" + +#: src/pages/network/networkpage.cpp src/pages/network/vpn/vpnpage.cpp +#: src/window/pagelist.cpp +msgid "VPN" +msgstr "" + +#: src/pages/network/networkpage.cpp src/pages/network/proxy/proxypage.cpp +#: src/window/pagelist.cpp +msgid "Proxy" +msgstr "" + +#: src/pages/network/proxy/proxypage.cpp +msgid "No proxy" +msgstr "" + +#: src/pages/network/proxy/proxypage.cpp +msgid "Use proxy auto configuration URL" +msgstr "" + +#: src/pages/network/proxy/proxypage.cpp +msgid "Use manually specified proxy configuration" +msgstr "" + +#: src/pages/network/proxy/proxypage.cpp +msgid "Select file" +msgstr "" + +#: src/pages/network/proxy/proxypage.cpp +msgid "HTTP proxy" +msgstr "" + +#: src/pages/network/proxy/proxypage.cpp +msgid "Port" +msgstr "" + +#: src/pages/network/proxy/proxypage.cpp +msgid "Also use this proxy for FTP" +msgstr "" + +#: src/pages/network/proxy/proxypage.cpp +msgid "FTP proxy" +msgstr "" + +#: src/pages/network/proxy/proxypage.cpp +msgid "SOCKS proxy" +msgstr "" + +#: src/pages/network/vpn/vpndialogs.cpp +msgid "Add VPN" +msgstr "" + +#: src/pages/network/vpn/vpndialogs.cpp +msgid "Type" +msgstr "" + +#: src/pages/network/vpn/vpndialogs.cpp +#, python-brace-format +msgid "{type} (Not Installed)" +msgstr "" + +#: src/pages/network/vpn/vpndialogs.cpp +msgid "Status" +msgstr "" + +#: src/pages/network/vpn/vpndialogs.cpp +msgid "Export to file…" +msgstr "" + +#: src/pages/network/vpn/vpndialogs.cpp +msgid "Export VPN Configuration" +msgstr "" + +#: src/pages/network/vpn/vpndialogs.cpp src/pages/network/vpn/vpnpage.cpp +#, python-brace-format +msgid "VPN configurations ({patterns})" +msgstr "" + +#: src/pages/network/vpn/vpndialogs.cpp +msgid "Remove VPN" +msgstr "" + +#: src/pages/network/vpn/vpndialogs.cpp src/pages/network/vpn/vpnpage.cpp +msgid "Connecting…" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Show advanced options" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Asked on connect" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Choose…" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Saved for all" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Saved" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Ask each time" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Not needed" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Hide advanced options" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Private key" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Interface name" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "From the name" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Listen port" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Automatic" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Firewall mark" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "MTU" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Add routes for the peers' allowed IPs" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Add peer" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Peer" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +#: src/pages/shortcuts/shortcuteditdialog.cpp +msgid "Remove" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Public key" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Preshared key" +msgstr "" + +#. TRANSLATORS: a placeholder: the stored preshared key stays unless a new one is typed. +#: src/pages/network/vpn/vpneditor.cpp +msgid "Kept" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Endpoint" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Allowed IPs" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "All traffic" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Keepalive" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +#: src/pages/notifications/notificationspage.cpp +msgid "Off" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +#, python-brace-format +msgid "Peer {number}" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Available to all users" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +msgid "Use only for resources on its network" +msgstr "" + +#: src/pages/network/vpn/vpneditor.cpp +#, python-brace-format +msgid "Install {package} to set up this kind of VPN." +msgstr "" + +#: src/pages/network/vpn/vpnpage.cpp +msgid "Add your user name to connect." +msgstr "" + +#: src/pages/network/vpn/vpnpage.cpp +msgid "Add VPN…" +msgstr "" + +#: src/pages/network/vpn/vpnpage.cpp +msgid "Import from file…" +msgstr "" + +#: src/pages/network/vpn/vpnpage.cpp +msgid "Import VPN Configuration" +msgstr "" + +#: src/pages/network/vpn/vpnpage.cpp +msgid "Importing…" +msgstr "" + +#: src/pages/network/vpn/vpnpage.cpp +msgid "Import the configuration file your VPN provider gives you, such as an OpenVPN .ovpn or a WireGuard .conf file." +msgstr "" + +#. TRANSLATORS: a Wi-Fi network's security: none, anyone can join. +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "Open" +msgstr "" + +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "WPA Enterprise" +msgstr "" + +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "WPA2 Enterprise" +msgstr "" + +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "WPA3 Enterprise" +msgstr "" + +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "Add Other Network" +msgstr "" + +#: src/pages/network/wlan/newnetworkdialog.cpp +#, python-brace-format +msgid "Join “{network}”" +msgstr "" + +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "Username" +msgstr "" + +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "This network signs in with a certificate, which can't be set up here yet." +msgstr "" + +#: src/pages/network/wlan/newnetworkdialog.cpp +msgid "Join" +msgstr "" + +#: src/pages/network/wlan/wlanpage.cpp src/window/pagelist.cpp +msgid "Wi-Fi" +msgstr "" + +#: src/pages/network/wlan/wlanpage.cpp +msgid "Known networks" +msgstr "" + +#: src/pages/network/wlan/wlanpage.cpp +msgid "Other networks" +msgstr "" + +#: src/pages/network/wlan/wlanpage.cpp +msgid "Add other…" +msgstr "" + +#: src/pages/notifications/notificationspage.cpp src/window/pagelist.cpp +msgid "Notifications" +msgstr "" + +#: src/pages/notifications/notificationspage.cpp +msgid "Do Not Disturb" +msgstr "" + +#: src/pages/notifications/notificationspage.cpp +msgid "Applications" +msgstr "" + +#: src/pages/notifications/notificationspage.cpp +msgid "Applications appear here after they send a notification." +msgstr "" + +#: src/pages/notifications/notificationspage.cpp +msgid "Notifications that skip the banner still go to the Notification Center. Turned off, they are dropped." +msgstr "" + +#: src/pages/notifications/notificationspage.cpp +msgid "Banners" +msgstr "" + +#: src/pages/notifications/notificationspage.cpp +msgid "Notification Center only" +msgstr "" + +#: src/pages/power/powerpage.cpp +#, python-brace-format +msgid "{n} minute" +msgid_plural "{n} minutes" +msgstr[0] "" +msgstr[1] "" + +#: src/pages/power/powerpage.cpp +msgid "Power save" +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Balanced" +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Performance" +msgstr "" + +#: src/pages/power/powerpage.cpp src/window/pagelist.cpp +msgid "Power" +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Turn off display when inactive on battery" +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Reduces performance and power consumption." +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Standard performance and power consumption." +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Higher performance, with more power consumption and heat." +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Performance is limited because the computer is on your lap." +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Performance is limited because the computer is too hot." +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Performance is currently limited." +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Turn off display when inactive on power adapter" +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Turn off display when inactive" +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Prevent automatic sleeping on power adapter when the display is off" +msgstr "" + +#: src/pages/power/powerpage.cpp +msgid "Prevent automatic sleeping when the display is off" +msgstr "" + +#: src/pages/shortcuts/shortcuteditdialog.cpp +msgid "Press the new shortcut…" +msgstr "" + +#: src/pages/shortcuts/shortcuteditdialog.cpp +msgid "Press the shortcut…" +msgstr "" + +#: src/pages/shortcuts/shortcuteditdialog.cpp +msgid "No shortcut. Add one below." +msgstr "" + +#: src/pages/shortcuts/shortcuteditdialog.cpp +msgid "Add shortcut" +msgstr "" + +#: src/pages/shortcuts/shortcuteditdialog.cpp +msgid "Restore default" +msgstr "" + +#: src/pages/shortcuts/shortcuteditdialog.cpp +msgid "Change" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "General" +msgstr "" + +#. TRANSLATORS: the group of keyboard shortcuts that act on windows. +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Windows" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Desks" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Screenshots and Recording" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Open the launcher" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Lock the screen" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Show the clipboard history" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to the next window" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to the previous window" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Show all windows" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Show the desktop" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Maximize or restore the window" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Minimize the window" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Quit the application" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Hide the application" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Hide other applications" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Toggle full screen" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Snap the window to the left" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Snap the window to the right" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Close the window" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Move the window to the next display" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to the desk on the left" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to the desk on the right" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Move the window to the desk on the left" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Move the window to the desk on the right" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Add a desk" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Remove the desk" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to desk 1" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to desk 2" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to desk 3" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to desk 4" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to desk 5" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to desk 6" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to desk 7" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Switch to desk 8" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Show the window on every desk" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Save a picture of the screen" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Copy a picture of the screen" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Save a picture of the selected area" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Copy a picture of the selected area" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Screenshot and recording options" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Stop screen recording" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Esc" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Enter" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Space" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Backspace" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Delete" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Insert" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Home" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "End" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Page Up" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Page Down" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Print Screen" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Tab" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Menu" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Volume Up" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Volume Down" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Mute" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Brightness Up" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Brightness Down" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Play/Pause" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Pause" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Next Track" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Previous Track" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Stop" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Calculator" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "File Manager" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Search" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Home Page" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgctxt "key" +msgid "Mail" +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "The shortcut service is not available." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +#, python-brace-format +msgid "This shortcut is already used by \"{action}\"." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +#, python-brace-format +msgid "This shortcut is used by \"{action}\". Press it again to reassign it." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Include Control, Option or Command, or use a function key." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Include Ctrl, Alt or Meta, or use a function key." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Shift cannot be the only modifier. Add Control, Option or Command." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Shift cannot be the only modifier. Add Ctrl, Alt or Meta." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "This key cannot be used in a shortcut." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "This action already has the maximum of five shortcuts." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Shortcuts without both Control and Command may be intercepted before applications see them. Press it again to keep it." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Shortcuts without Meta may be intercepted before applications see them. Press it again to keep it." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "Some default shortcuts are in use by other actions and were not restored." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "This shortcut no longer exists." +msgstr "" + +#: src/pages/shortcuts/shortcutsmodel.cpp +msgid "The shortcut could not be changed." +msgstr "" + +#: src/pages/shortcuts/shortcutspage.cpp +msgid "Keyboard shortcuts are managed by the Cutefish compositor, which is not running." +msgstr "" + +#: src/pages/shortcuts/shortcutspage.cpp +msgid "Restore all defaults" +msgstr "" + +#: src/pages/shortcuts/shortcutspage.cpp +msgid "Click a system shortcut to change it. Shortcuts with both Control and Command are the safest choice: applications never get them." +msgstr "" + +#: src/pages/shortcuts/shortcutspage.cpp +msgid "Click a system shortcut to change it. Shortcuts with Meta are the safest choice: applications never use them." +msgstr "" + +#: src/pages/shortcuts/shortcutspage.cpp +msgid "Every shortcut goes back to its default. Your changes will be lost." +msgstr "" + +#: src/pages/shortcuts/shortcutspage.cpp +msgid "Restore" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "Virtual" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "Built-in" +msgstr "" + +#: src/pages/sound/soundpage.cpp src/window/pagelist.cpp +msgid "Sound" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "Connecting to the audio service…" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "Dismiss" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "Output" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "Input" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "Output volume" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "Balance" +msgstr "" + +#: src/pages/sound/soundpage.cpp src/widgets/sliderrow.cpp +msgctxt "balance" +msgid "Left" +msgstr "" + +#: src/pages/sound/soundpage.cpp src/widgets/sliderrow.cpp +msgctxt "balance" +msgid "Right" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "Input volume" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "Input level" +msgstr "" + +#: src/pages/sound/soundpage.cpp +#, python-brace-format +msgid "Could not apply the audio change: {error}" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "No input devices" +msgstr "" + +#: src/pages/sound/soundpage.cpp +msgid "No output devices" +msgstr "" + +#: src/pages/touchpad/touchpadpage.cpp src/window/pagelist.cpp +msgid "Touchpad" +msgstr "" + +#: src/pages/touchpad/touchpadpage.cpp +msgid "Enable" +msgstr "" + +#: src/pages/touchpad/touchpadpage.cpp +msgid "Disable when a mouse is connected" +msgstr "" + +#: src/pages/touchpad/touchpadpage.cpp +msgid "Disable while typing" +msgstr "" + +#: src/pages/touchpad/touchpadpage.cpp +msgid "Tap to click" +msgstr "" + +#: src/pages/touchpad/touchpadpage.cpp +msgid "Tap and drag" +msgstr "" + +#: src/pages/touchpad/touchpadpage.cpp +msgid "Secondary click" +msgstr "" + +#: src/pages/touchpad/touchpadpage.cpp +msgid "Two-finger press" +msgstr "" + +#: src/pages/touchpad/touchpadpage.cpp +msgid "Bottom-right corner press" +msgstr "" + +#: src/pages/touchpad/touchpadpage.cpp +msgid "Scroll speed" +msgstr "" + +#: src/pages/touchscreen/touchscreenpage.cpp src/window/pagelist.cpp +msgid "Touchscreen" +msgstr "" + +#: src/pages/wallpaper/wallpapergrid.cpp src/pages/wallpaper/wallpaperpage.cpp +msgid "Add wallpaper" +msgstr "" + +#. TRANSLATORS: the number of wallpapers after a section's title, such as "(12)". +#: src/pages/wallpaper/wallpapergrid.cpp +#, python-brace-format +msgid "({count})" +msgstr "" + +#: src/pages/wallpaper/wallpapergrid.cpp +msgid "Show less" +msgstr "" + +#: src/pages/wallpaper/wallpapergrid.cpp +msgid "Show all" +msgstr "" + +#: src/pages/wallpaper/wallpaperpage.cpp src/window/pagelist.cpp +msgid "Wallpaper" +msgstr "" + +#: src/pages/wallpaper/wallpaperpage.cpp +msgid "Your wallpapers" +msgstr "" + +#: src/pages/wallpaper/wallpaperpage.cpp src/window/pagelist.cpp +msgid "System" +msgstr "" + +#: src/pages/wallpaper/wallpaperpage.cpp +msgid "Colors" +msgstr "" + +#: src/pages/wallpaper/wallpaperpage.cpp +msgid "Choose file…" +msgstr "" + +#: src/pages/wallpaper/wallpaperpage.cpp +msgid "Choose folder…" +msgstr "" + +#: src/pages/wallpaper/wallpaperpage.cpp +msgid "Add Wallpaper Folder" +msgstr "" + +#: src/widgets/searchfield.cpp +msgid "Search" +msgstr "" + +#: src/window/page.cpp +msgid "This page is not ported yet." +msgstr "" + +#: src/window/pagelist.cpp +msgid "wireless, WLAN, network, internet, password, DNS, IP address" +msgstr "" + +#: src/window/pagelist.cpp +msgid "wired, LAN, network, internet, cable, IP address" +msgstr "" + +#: src/window/pagelist.cpp +msgid "wireless, devices, pairing, headphones" +msgstr "" + +#: src/window/pagelist.cpp +msgid "VPN, proxy, hotspot, tethering, internet" +msgstr "" + +#: src/window/pagelist.cpp +msgid "Desktop" +msgstr "" + +#: src/window/pagelist.cpp +msgid "theme, dark mode, light mode, accent color, dim wallpaper" +msgstr "" + +#: src/window/pagelist.cpp +msgid "background, desktop picture, image" +msgstr "" + +#: src/window/pagelist.cpp +msgid "taskbar, position, size, auto hide, glass effect" +msgstr "" + +#: src/window/pagelist.cpp +msgid "do not disturb, banners, alerts" +msgstr "" + +#: src/window/pagelist.cpp +msgid "Devices" +msgstr "" + +#: src/window/pagelist.cpp +msgid "monitor, screen, resolution, refresh rate, scaling, brightness, rotation" +msgstr "" + +#: src/window/pagelist.cpp +msgid "audio, volume, speakers, headphones, microphone, input, output" +msgstr "" + +#: src/window/pagelist.cpp +msgid "input method, key repeat, keyboard style" +msgstr "" + +#: src/window/pagelist.cpp +msgid "pointer speed, acceleration, natural scrolling, left-handed" +msgstr "" + +#: src/window/pagelist.cpp +msgid "trackpad, tap to click, natural scrolling, secondary click, pointer speed" +msgstr "" + +#: src/window/pagelist.cpp +msgid "touch, touch screen, touch panel" +msgstr "" + +#: src/window/pagelist.cpp +msgid "accounts, password, login, administrator, avatar" +msgstr "" + +#: src/window/pagelist.cpp +msgid "region, locale, system language" +msgstr "" + +#: src/window/pagelist.cpp +msgid "clock, time zone, 24-hour time, NTP, sync" +msgstr "" + +#: src/window/pagelist.cpp +msgid "web browser, email client, terminal" +msgstr "" + +#: src/window/pagelist.cpp +msgid "charge, charging limit, battery health, capacity, history, percentage" +msgstr "" + +#: src/window/pagelist.cpp +msgid "energy, performance, power saving, sleep, turn off display" +msgstr "" + +#: src/window/pagelist.cpp +msgid "system, version, kernel, processor, memory, storage, hardware" +msgstr "" + +#: src/window/pagelist.cpp +msgid "VPN, WireGuard, OpenVPN, tunnel, network" +msgstr "" + +#: src/window/pagelist.cpp +msgid "HTTP, HTTPS, SOCKS, FTP, PAC, network" +msgstr "" + +#: src/window/pagelist.cpp +msgid "tethering, share internet, access point, Wi-Fi, wireless" +msgstr "" + +#: src/window/pagelist.cpp +msgid "general font, fixed font, font size, anti-aliasing, hinting" +msgstr "" + +#: src/window/pagelist.cpp +msgid "icons" +msgstr "" + +#: src/window/pagelist.cpp +msgid "cursor theme, cursor size, pointer" +msgstr "" + +#: src/window/pagelist.cpp +msgid "Keyboard Layout" +msgstr "" + +#: src/window/pagelist.cpp +msgid "input source" +msgstr "" + +#: src/window/pagelist.cpp +msgid "screen corners, show desktop, show all windows" +msgstr "" + +#: src/window/pagelist.cpp +msgid "hotkeys, key bindings" +msgstr "" + +#: src/window/settingswindow.cpp src/window/sidebar.cpp +#: cutefish-settings.desktop +msgid "Settings" +msgstr "" + +#: src/window/sidebar.cpp +msgid "No results" +msgstr "" diff --git a/src/main.cpp b/src/main.cpp index c103e1e..1f54699 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,6 +5,7 @@ #include #include "base/dbus.h" +#include "base/i18n.h" #include "ui/application.h" #include "window/options.h" #include "window/settingswindow.h" @@ -68,6 +69,7 @@ int main(int argc, char** argv) ui::Application application(argc, argv); application.setApplicationId("cutefish-settings"); + i18n::setDomain("cutefish-settings"); // A running instance takes the request, and this process ends. base::dbus::Connection* bus = application.sessionBus(); diff --git a/src/pages/about/aboutinfo.cpp b/src/pages/about/aboutinfo.cpp index 0433860..cb6aaa3 100644 --- a/src/pages/about/aboutinfo.cpp +++ b/src/pages/about/aboutinfo.cpp @@ -12,6 +12,12 @@ #include #include +#include "base/i18n.h" + +using cutefish::i18n::format; +using cutefish::i18n::tr; +using cutefish::i18n::trNoop; + namespace settings::about { static std::string unquoted(std::string value) @@ -165,15 +171,17 @@ std::string processor() } } if (!found) - return "Unknown"; + return tr("Unknown"); if (count > 0) - model += " x " + std::to_string(count); + // TRANSLATORS: a processor model and its number of cores, such as "Intel Core i5 x 8". + model = format(tr("{model} x {count}"), {{"model", model}, {"count", std::to_string(count)}}); return model; } std::string formatByteSize(double size) { - static const char* const units[] = {"B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"}; + static const char* const units[] = {trNoop("B"), trNoop("KB"), trNoop("MB"), trNoop("GB"), trNoop("TB"), + trNoop("PB"), trNoop("EB"), trNoop("ZB"), trNoop("YB")}; int unit = 0; while (std::abs(size) >= 1024 && unit < 8) { size /= 1024; @@ -181,7 +189,8 @@ std::string formatByteSize(double size) } char number[64]; snprintf(number, sizeof(number), "%.0f", size); - return std::string(number) + " " + units[unit]; + // TRANSLATORS: a size, such as "16 GB". + return format(tr("{value} {unit}"), {{"value", number}, {"unit", tr(units[unit])}}); } std::string memorySize() @@ -192,14 +201,20 @@ std::string memorySize() return formatByteSize(double(info.totalram) * info.mem_unit); } +static std::string storageText(const std::string& used, const std::string& total) +{ + // TRANSLATORS: the space used on the system disk and its size, such as "40 GB / 256 GB". + return format(tr("{used} / {total}"), {{"used", used}, {"total", total}}); +} + std::string internalStorage() { struct statvfs root; if (statvfs("/", &root) != 0) - return formatByteSize(0) + " / " + formatByteSize(0); + return storageText(formatByteSize(0), formatByteSize(0)); const double total = double(root.f_blocks) * root.f_frsize; const double available = double(root.f_bavail) * root.f_frsize; - return formatByteSize(total - available) + " / " + formatByteSize(total); + return storageText(formatByteSize(total - available), formatByteSize(total)); } } // namespace settings::about diff --git a/src/pages/about/aboutpage.cpp b/src/pages/about/aboutpage.cpp index 35c9aa3..6bf4d90 100644 --- a/src/pages/about/aboutpage.cpp +++ b/src/pages/about/aboutpage.cpp @@ -1,6 +1,7 @@ // SPDX-FileCopyrightText: 2026 Reion Wong // SPDX-License-Identifier: BSD-3-Clause +#include "base/i18n.h" #include "pages/about/aboutinfo.h" #include "ui/label.h" #include "ui/cell_layout.h" @@ -13,6 +14,8 @@ #include "window/pagelist.h" using namespace cutefish::ui; +using cutefish::i18n::format; +using cutefish::i18n::tr; namespace settings { @@ -22,7 +25,7 @@ class AboutPage : public Page { public: explicit AboutPage(SettingsWindow& window) - : Page(window, "About") + : Page(window, tr("About")) { // A nested layout never grows past its children's width, so it is // centred itself rather than filled. @@ -39,19 +42,20 @@ public: name->setWeight(700); name->setColor(Color::rgb(0x3385FF)); name->setLayoutHints({.horizontalAlignment = Alignment::Center, .verticalAlignment = Alignment::Start}); - m_runningOn = brand->addChild