diff --git a/9router-control/translations/en.json b/9router-control/translations/en.json index fba49fc..3868a8e 100644 --- a/9router-control/translations/en.json +++ b/9router-control/translations/en.json @@ -1,120 +1,120 @@ { - "state": { - "tip": { - "online": "9Router: connected", - "offline": "9Router: offline", - "auth_required": "9Router: login required" - }, - "combos": "{count} combo(s)" - }, - "login": { - "title": "9Router Login", - "hint": "The dashboard requires authentication. Enter your 9Router password to continue.", - "password_placeholder": "Password…", - "submit": "Log in" - }, - "list": { - "title": "9Router — Combos", - "refresh": "Refresh", - "new_combo": "New Combo", - "search": "Search combos…", - "empty": "No combos yet. Create one to get started.", - "no_match": "No combos match your search.", - "open": "Open combo", - "delete": "Delete combo", - "delete_confirm": "Confirm delete", - "delete_cancel": "Cancel", - "kind": "Kind: {kind}" - }, - "detail": { - "back": "Back to combos", - "models_count": "{count} model(s)", - "refresh": "Refresh", - "delete": "Delete combo", - "delete_confirm": "Delete this combo?", - "delete_yes": "Yes, delete", - "delete_no": "Cancel", - "kind_label": "Kind", - "rename": "Rename", - "rename_placeholder": "New name…", - "rename_save": "Save", - "rename_cancel": "Cancel", - "models_title": "Model Chain", - "no_models": "This combo has no models yet.", - "drag_hint": "Drag a model to reorder", - "add_model": "Add model", - "remove_model": "Remove model", - "move_up": "Move up", - "move_down": "Move down" - }, "add_model": { - "title": "Add Model", "back": "Back to combo", - "search": "Search models…", "empty": "No models available.", - "no_match": "No models match your search." + "no_match": "No models match your search.", + "search": "Search models…", + "title": "Add Model" }, "create": { - "title": "New Combo", "back": "Back", + "cancel": "Cancel", + "kind_label": "Kind", + "models_hint": "One model per line, in fallback order (e.g. cc/claude-opus-4-7).", + "models_label": "Models", + "models_placeholder": "cc/claude-opus-4-7\nglm/glm-5.1", "name_label": "Name", "name_placeholder": "e.g. my-fallback", - "models_label": "Models", - "models_hint": "One model per line, in fallback order (e.g. cc/claude-opus-4-7).", - "models_placeholder": "cc/claude-opus-4-7\nglm/glm-5.1", - "kind_label": "Kind", - "cancel": "Cancel", - "submit": "Create" + "submit": "Create", + "title": "New Combo" }, - "kind": { - "none": "None", - "fallback": "Fallback", - "round_robin": "Round-robin", - "fusion": "Fusion" + "detail": { + "add_model": "Add model", + "back": "Back to combos", + "delete": "Delete combo", + "delete_confirm": "Delete this combo?", + "delete_no": "Cancel", + "delete_yes": "Yes, delete", + "drag_hint": "Drag a model to reorder", + "kind_label": "Kind", + "models_count": "{count} model(s)", + "models_title": "Model Chain", + "move_down": "Move down", + "move_up": "Move up", + "no_models": "This combo has no models yet.", + "refresh": "Refresh", + "remove_model": "Remove model", + "rename": "Rename", + "rename_cancel": "Cancel", + "rename_placeholder": "New name…", + "rename_save": "Save" }, "error": { - "dismiss": "Dismiss", - "connection_failed": "Could not connect to 9Router", - "http_status": "HTTP {status}", - "bad_response": "Unexpected response from 9Router", - "auth_required": "Authentication required", - "login_failed": "Login failed", - "need_password": "Please enter your password.", - "reorder_failed": "Failed to reorder models", "add_model_failed": "Failed to add model", - "remove_model_failed": "Failed to remove model", - "invalid_name": "Name can only contain letters, numbers, -, _ and .", + "auth_required": "Authentication required", + "bad_response": "Unexpected response from 9Router", + "connection_failed": "Could not connect to 9Router", "create_failed": "Failed to create combo", - "need_name_models": "A name and at least one model are required.", "delete_failed": "Failed to delete combo", + "dismiss": "Dismiss", + "http_status": "HTTP {status}", + "invalid_name": "Name can only contain letters, numbers, -, _ and .", + "kind_failed": "Failed to update kind", + "login_failed": "Login failed", + "need_name_models": "A name and at least one model are required.", + "need_password": "Please enter your password.", + "remove_model_failed": "Failed to remove model", "rename_failed": "Failed to rename combo", - "kind_failed": "Failed to update kind" + "reorder_failed": "Failed to reorder models" + }, + "kind": { + "fallback": "Fallback", + "fusion": "Fusion", + "none": "None", + "round_robin": "Round-robin" + }, + "list": { + "delete": "Delete combo", + "delete_cancel": "Cancel", + "delete_confirm": "Confirm delete", + "empty": "No combos yet. Create one to get started.", + "kind": "Kind: {kind}", + "new_combo": "New Combo", + "no_match": "No combos match your search.", + "open": "Open combo", + "refresh": "Refresh", + "search": "Search combos…", + "title": "9Router — Combos" + }, + "login": { + "hint": "The dashboard requires authentication. Enter your 9Router password to continue.", + "password_placeholder": "Password…", + "submit": "Log in", + "title": "9Router Login" }, "settings": { - "server_host": { - "label": "Server Host", - "description": "Hostname of the 9Router dashboard. Default: 127.0.0.1." - }, - "server_port": { - "label": "Server Port", - "description": "Port of the 9Router dashboard. Default: 20128." - }, "data_dir": { - "label": "Data Directory", - "description": "9Router data directory (used to compute the CLI token when the dashboard requires login). Default: ~/.9router." + "description": "9Router data directory (used to compute the CLI token when the dashboard requires login). Default: ~/.9router.", + "label": "Data Directory" + }, + "debug_logging": { + "description": "Print debug messages to the Noctalia log.", + "label": "Debug Logging" }, "language": { - "label": "Language", "description": "Language for this plugin's UI. 'Auto' follows the Noctalia shell language.", + "label": "Language", "options": { "auto": "Auto (follow shell)", "en": "English", "vi": "Tiếng Việt" } }, - "debug_logging": { - "label": "Debug Logging", - "description": "Print debug messages to the Noctalia log." + "server_host": { + "description": "Hostname of the 9Router dashboard. Default: 127.0.0.1.", + "label": "Server Host" + }, + "server_port": { + "description": "Port of the 9Router dashboard. Default: 20128.", + "label": "Server Port" + } + }, + "state": { + "combos": "{count} combo(s)", + "tip": { + "auth_required": "9Router: login required", + "offline": "9Router: offline", + "online": "9Router: connected" } } } diff --git a/9router-control/translations/vi.json b/9router-control/translations/vi.json index 501844e..c8d3e76 100644 --- a/9router-control/translations/vi.json +++ b/9router-control/translations/vi.json @@ -1,120 +1,120 @@ { - "state": { - "tip": { - "online": "9Router: đã kết nối", - "offline": "9Router: ngoại tuyến", - "auth_required": "9Router: cần đăng nhập" - }, - "combos": "{count} combo" - }, - "login": { - "title": "Đăng nhập 9Router", - "hint": "Dashboard yêu cầu xác thực. Nhập mật khẩu 9Router của bạn để tiếp tục.", - "password_placeholder": "Mật khẩu…", - "submit": "Đăng nhập" - }, - "list": { - "title": "9Router — Combos", - "refresh": "Làm mới", - "new_combo": "Combo mới", - "search": "Tìm combo…", - "empty": "Chưa có combo nào. Tạo một combo để bắt đầu.", - "no_match": "Không có combo nào khớp tìm kiếm.", - "open": "Mở combo", - "delete": "Xóa combo", - "delete_confirm": "Xác nhận xóa", - "delete_cancel": "Hủy", - "kind": "Loại: {kind}" - }, - "detail": { - "back": "Quay lại danh sách", - "models_count": "{count} model", - "refresh": "Làm mới", - "delete": "Xóa combo", - "delete_confirm": "Xóa combo này?", - "delete_yes": "Có, xóa", - "delete_no": "Hủy", - "kind_label": "Loại", - "rename": "Đổi tên", - "rename_placeholder": "Tên mới…", - "rename_save": "Lưu", - "rename_cancel": "Hủy", - "models_title": "Chuỗi Model", - "no_models": "Combo này chưa có model nào.", - "drag_hint": "Kéo model để sắp xếp lại", - "add_model": "Thêm model", - "remove_model": "Xóa model", - "move_up": "Di chuyển lên", - "move_down": "Di chuyển xuống" - }, "add_model": { - "title": "Thêm Model", "back": "Quay lại combo", - "search": "Tìm model…", "empty": "Không có model nào.", - "no_match": "Không có model khớp tìm kiếm." + "no_match": "Không có model khớp tìm kiếm.", + "search": "Tìm model…", + "title": "Thêm Model" }, "create": { - "title": "Combo mới", "back": "Quay lại", + "cancel": "Hủy", + "kind_label": "Loại", + "models_hint": "Mỗi model một dòng, theo thứ tự fallback (vd: cc/claude-opus-4-7).", + "models_label": "Models", + "models_placeholder": "cc/claude-opus-4-7\nglm/glm-5.1", "name_label": "Tên", "name_placeholder": "vd: my-fallback", - "models_label": "Models", - "models_hint": "Mỗi model một dòng, theo thứ tự fallback (vd: cc/claude-opus-4-7).", - "models_placeholder": "cc/claude-opus-4-7\nglm/glm-5.1", - "kind_label": "Loại", - "cancel": "Hủy", - "submit": "Tạo" + "submit": "Tạo", + "title": "Combo mới" }, - "kind": { - "none": "Không", - "fallback": "Fallback", - "round_robin": "Round-robin", - "fusion": "Fusion" + "detail": { + "add_model": "Thêm model", + "back": "Quay lại danh sách", + "delete": "Xóa combo", + "delete_confirm": "Xóa combo này?", + "delete_no": "Hủy", + "delete_yes": "Có, xóa", + "drag_hint": "Kéo model để sắp xếp lại", + "kind_label": "Loại", + "models_count": "{count} model", + "models_title": "Chuỗi Model", + "move_down": "Di chuyển xuống", + "move_up": "Di chuyển lên", + "no_models": "Combo này chưa có model nào.", + "refresh": "Làm mới", + "remove_model": "Xóa model", + "rename": "Đổi tên", + "rename_cancel": "Hủy", + "rename_placeholder": "Tên mới…", + "rename_save": "Lưu" }, "error": { - "dismiss": "Đóng", - "connection_failed": "Không kết nối được 9Router", - "http_status": "HTTP {status}", - "bad_response": "Phản hồi không mong đợi từ 9Router", - "auth_required": "Cần xác thực", - "login_failed": "Đăng nhập thất bại", - "need_password": "Vui lòng nhập mật khẩu.", - "reorder_failed": "Không thể sắp xếp lại model", "add_model_failed": "Không thể thêm model", - "remove_model_failed": "Không thể xóa model", - "invalid_name": "Tên chỉ được chứa chữ, số, -, _ và .", + "auth_required": "Cần xác thực", + "bad_response": "Phản hồi không mong đợi từ 9Router", + "connection_failed": "Không kết nối được 9Router", "create_failed": "Không thể tạo combo", - "need_name_models": "Cần tên và ít nhất một model.", "delete_failed": "Không xóa được combo", + "dismiss": "Đóng", + "http_status": "HTTP {status}", + "invalid_name": "Tên chỉ được chứa chữ, số, -, _ và .", + "kind_failed": "Không cập nhật được loại", + "login_failed": "Đăng nhập thất bại", + "need_name_models": "Cần tên và ít nhất một model.", + "need_password": "Vui lòng nhập mật khẩu.", + "remove_model_failed": "Không thể xóa model", "rename_failed": "Không đổi tên được combo", - "kind_failed": "Không cập nhật được loại" + "reorder_failed": "Không thể sắp xếp lại model" + }, + "kind": { + "fallback": "Fallback", + "fusion": "Fusion", + "none": "Không", + "round_robin": "Round-robin" + }, + "list": { + "delete": "Xóa combo", + "delete_cancel": "Hủy", + "delete_confirm": "Xác nhận xóa", + "empty": "Chưa có combo nào. Tạo một combo để bắt đầu.", + "kind": "Loại: {kind}", + "new_combo": "Combo mới", + "no_match": "Không có combo nào khớp tìm kiếm.", + "open": "Mở combo", + "refresh": "Làm mới", + "search": "Tìm combo…", + "title": "9Router — Combos" + }, + "login": { + "hint": "Dashboard yêu cầu xác thực. Nhập mật khẩu 9Router của bạn để tiếp tục.", + "password_placeholder": "Mật khẩu…", + "submit": "Đăng nhập", + "title": "Đăng nhập 9Router" }, "settings": { - "server_host": { - "label": "Máy chủ", - "description": "Hostname của dashboard 9Router. Mặc định: 127.0.0.1." - }, - "server_port": { - "label": "Cổng", - "description": "Cổng của dashboard 9Router. Mặc định: 20128." - }, "data_dir": { - "label": "Thư mục dữ liệu", - "description": "Thư mục dữ liệu 9Router (dùng để tính CLI token khi dashboard yêu cầu đăng nhập). Mặc định: ~/.9router." + "description": "Thư mục dữ liệu 9Router (dùng để tính CLI token khi dashboard yêu cầu đăng nhập). Mặc định: ~/.9router.", + "label": "Thư mục dữ liệu" + }, + "debug_logging": { + "description": "In thông điệp gỡ lỗi vào log Noctalia.", + "label": "Ghi log gỡ lỗi" }, "language": { - "label": "Ngôn ngữ", "description": "Ngôn ngữ giao diện của plugin. 'Tự động' theo ngôn ngữ shell Noctalia.", + "label": "Ngôn ngữ", "options": { "auto": "Tự động (theo shell)", "en": "English", "vi": "Tiếng Việt" } }, - "debug_logging": { - "label": "Ghi log gỡ lỗi", - "description": "In thông điệp gỡ lỗi vào log Noctalia." + "server_host": { + "description": "Hostname của dashboard 9Router. Mặc định: 127.0.0.1.", + "label": "Máy chủ" + }, + "server_port": { + "description": "Cổng của dashboard 9Router. Mặc định: 20128.", + "label": "Cổng" + } + }, + "state": { + "combos": "{count} combo", + "tip": { + "auth_required": "9Router: cần đăng nhập", + "offline": "9Router: ngoại tuyến", + "online": "9Router: đã kết nối" } } } diff --git a/arch-updater/translations/fr.json b/arch-updater/translations/fr.json index 0677068..f0353b3 100644 --- a/arch-updater/translations/fr.json +++ b/arch-updater/translations/fr.json @@ -1,5 +1,9 @@ { "action_update": "Mettre à jour", + "caption_ignored": { + "one": "1 paquet ignoré", + "other": "{count} paquets ignorés" + }, "notify_updates": { "one": "1 paquet à mettre à jour", "other": "{count} paquets à mettre à jour" diff --git a/audio-switcher/translations/en.json b/audio-switcher/translations/en.json index 5ce2424..4a194f1 100644 --- a/audio-switcher/translations/en.json +++ b/audio-switcher/translations/en.json @@ -56,12 +56,12 @@ "group_remove_failed": "Could not disband the output group.", "group_requires_two": "Select at least two available outputs.", "group_switch_failed": "The output group was created, but could not be selected.", - "invalid_audio_data": "The audio service returned invalid data.", - "invalid_slot": "The keybind number must be a whole number from 1 to 99.", - "invalid_volume": "The requested volume is invalid.", "input_port_not_found": "The selected input port no longer exists.", "input_port_switch_failed": "Could not switch the input port.", "input_port_unavailable": "The selected input port is not currently available.", + "invalid_audio_data": "The audio service returned invalid data.", + "invalid_slot": "The keybind number must be a whole number from 1 to 99.", + "invalid_volume": "The requested volume is invalid.", "no_visible_devices": "There are no visible devices to cycle through.", "pactl_missing": "pactl is required but was not found on PATH.", "scan_in_progress": "Bluetooth scanning is already in progress.", diff --git a/config-swap/translations/en.json b/config-swap/translations/en.json index 5c48dc5..ce8312c 100644 --- a/config-swap/translations/en.json +++ b/config-swap/translations/en.json @@ -1,47 +1,47 @@ { - "panel": { - "apply": "Apply", - "apply_notification_title": "Apply", - "created_by": "Created by {author}", - "description": "Description: {description}", - "download_failed": "Download failed", - "download_ok": "Download complete", - "install": "Install", - "install_notification_title": "Install", - "installed_title": "Installed Configs", - "notification_title": "Config Swap", - "origin": "Origin: {origin}", - "refresh": "Refresh", - "show_list": "Show List", - "show_store": "Show Store", - "store_title": "Config Store", - "title": "Config Swap", - "welcome_message_title": "Welcome to Config Swap!", - "welcome_message1": "Please read this carefully before you continue.", - "welcome_message2": "This plugin can replace your current Noctalia configuration. We recommend backing up your current settings first — use the Save button in the Installed section. Backups are stored in ~/Config-Swap.", - "not_agree": "Not now", - "agree": "I understand", - "confirmation": "Apply this configuration?", - "description_confirmation": "This will replace your current settings.toml and wallpaper. A backup is not created automatically unless you saved one first.", - "cancel": "Cancel", - "confirmation_delete": "Are you sure too delete ", - "delete": "delete", - "description_setting1": "Save your current configuration under a custom name at ~/Config-Swap/{name}. A default info.json is created and can be edited later at ~/Config-Swap/{name}/info.json. To set a preview, you can add preview.png to the config folder. This also works for wallpapers using wallpaper.png", - "save": "save", - "info_store_title": "Info Store section", - "info_store_github_button": "github", - "info_store_copy_link_success": "copy link success", - "info_store_what_is_title": "What is the Store?", - "info_store_what_is_body": "The Store lists community-submitted configuration profiles hosted on the Config-Swap-Box GitHub repository. Each profile bundles a settings.toml, a preview image, and an optional wallpaper.", - "info_store_installing_title": "Installing a profile", - "info_store_installing_body": "Pressing install downloads the profile's files into ~/Config-Swap/{name}. This does not change your current configuration yet.", - "info_store_applying_title": "Applying a profile", - "info_store_applying_body": "Pressing apply replaces your active settings.toml and wallpaper with the selected profile. This is not reversible unless you saved a backup first from the Setting section.", - "info_store_community_title": "Community content", - "info_store_community_body": "Profiles are submitted by community members and are reviewed by the owner.", - "info_store_rate_limits_title": "Rate limits", - "info_store_rate_limits_body": "The store list is fetched from the GitHub API, which limits unauthenticated requests. Avoid refreshing repeatedly in a short period of time.", - "info_how_to_submite_config_title": "How to submit a configuration", - "info_how_to_submite_config_body": "You can contribute to Config Swap by adding your own configuration files and wallpaper to the store so others can use them.\n\nTo do so:\n* Go to the Settings section and save your configuration. The plugin will copy your settings.toml and create an info.json file.\n* Take a preview image and wallpaper, then go to ~/Config-Swap/{name} and copy your preview.png and wallpaper.png files. The exact names are required.\n* Update your info.json with important information such as the author and description.\n* Go to the GitHub page linked from the information panel in the Store section and create a pull request.\n* Wait for review, and then your configuration can be shared." - } -} \ No newline at end of file + "panel": { + "agree": "I understand", + "apply": "Apply", + "apply_notification_title": "Apply", + "cancel": "Cancel", + "confirmation": "Apply this configuration?", + "confirmation_delete": "Are you sure too delete ", + "created_by": "Created by {author}", + "delete": "delete", + "description": "Description: {description}", + "description_confirmation": "This will replace your current settings.toml and wallpaper. A backup is not created automatically unless you saved one first.", + "description_setting1": "Save your current configuration under a custom name at ~/Config-Swap/{name}. A default info.json is created and can be edited later at ~/Config-Swap/{name}/info.json. To set a preview, you can add preview.png to the config folder. This also works for wallpapers using wallpaper.png", + "download_failed": "Download failed", + "download_ok": "Download complete", + "info_how_to_submite_config_body": "You can contribute to Config Swap by adding your own configuration files and wallpaper to the store so others can use them.\n\nTo do so:\n* Go to the Settings section and save your configuration. The plugin will copy your settings.toml and create an info.json file.\n* Take a preview image and wallpaper, then go to ~/Config-Swap/{name} and copy your preview.png and wallpaper.png files. The exact names are required.\n* Update your info.json with important information such as the author and description.\n* Go to the GitHub page linked from the information panel in the Store section and create a pull request.\n* Wait for review, and then your configuration can be shared.", + "info_how_to_submite_config_title": "How to submit a configuration", + "info_store_applying_body": "Pressing apply replaces your active settings.toml and wallpaper with the selected profile. This is not reversible unless you saved a backup first from the Setting section.", + "info_store_applying_title": "Applying a profile", + "info_store_community_body": "Profiles are submitted by community members and are reviewed by the owner.", + "info_store_community_title": "Community content", + "info_store_copy_link_success": "copy link success", + "info_store_github_button": "github", + "info_store_installing_body": "Pressing install downloads the profile's files into ~/Config-Swap/{name}. This does not change your current configuration yet.", + "info_store_installing_title": "Installing a profile", + "info_store_rate_limits_body": "The store list is fetched from the GitHub API, which limits unauthenticated requests. Avoid refreshing repeatedly in a short period of time.", + "info_store_rate_limits_title": "Rate limits", + "info_store_title": "Info Store section", + "info_store_what_is_body": "The Store lists community-submitted configuration profiles hosted on the Config-Swap-Box GitHub repository. Each profile bundles a settings.toml, a preview image, and an optional wallpaper.", + "info_store_what_is_title": "What is the Store?", + "install": "Install", + "install_notification_title": "Install", + "installed_title": "Installed Configs", + "not_agree": "Not now", + "notification_title": "Config Swap", + "origin": "Origin: {origin}", + "refresh": "Refresh", + "save": "save", + "show_list": "Show List", + "show_store": "Show Store", + "store_title": "Config Store", + "title": "Config Swap", + "welcome_message1": "Please read this carefully before you continue.", + "welcome_message2": "This plugin can replace your current Noctalia configuration. We recommend backing up your current settings first — use the Save button in the Installed section. Backups are stored in ~/Config-Swap.", + "welcome_message_title": "Welcome to Config Swap!" + } +} diff --git a/keymap/translations/en.json b/keymap/translations/en.json index 294bd49..99077b3 100644 --- a/keymap/translations/en.json +++ b/keymap/translations/en.json @@ -163,7 +163,7 @@ "description_not_editable": "The description in this shortcut cannot be changed safely.", "description_required": "Enter a shortcut description.", "different_source": "These shortcuts are stored in different files and cannot be reordered safely.", - "file_too_large": "The keybinding file is too large.", + "file_too_large": "The managed keybinding file is too large.", "hidden_block_invalid": "The hidden shortcut block is incomplete or damaged, so it was left unchanged.", "integrate_failed": "The managed file could not be included from the main configuration.", "invalid_command_kind": "The selected command type is not supported.", @@ -182,9 +182,9 @@ "managed_rename_failed": "The managed keybinding file could not be installed atomically.", "managed_temporary_collision": "A safe temporary filename could not be allocated.", "managed_write_failed": "The managed keybinding file could not be written.", + "mango_command_hash_unsupported": "MangoWC commands containing # are not supported by this first writer version.", "migration_cleanup_changed": "The configuration or legacy Keymap file changed during migration, so automatic cleanup stopped for safety.", "migration_remove_failed": "The legacy Keymap file could not be removed, so the original configuration was restored.", - "mango_command_hash_unsupported": "MangoWC commands containing # are not supported by this first writer version.", "native_update_unsupported": "Existing shortcuts cannot be converted to native actions safely.", "preflight_failed": "The configuration safety check could not be started.", "recovery_reload_failed": "The previous files were restored, but reloading the restored compositor configuration also failed.", @@ -199,7 +199,7 @@ "source_rename_failed": "The main configuration could not be updated atomically.", "source_temporary_collision": "A safe temporary filename could not be allocated.", "source_unreadable": "The main compositor configuration could not be read.", - "source_write_failed": "The main configuration file could not be written.", + "source_write_failed": "The managed file could not be included from the main configuration.", "stale_category": "The category changed while its editor was open. Refresh and try again.", "stale_context": "The compositor configuration changed while the creator was open. Refresh and reopen the creator.", "symlink_unsupported": "The main or managed configuration is a symbolic link. Saving is blocked to preserve the link safely.", @@ -214,7 +214,7 @@ "verify_failed": "The compositor rejected the generated configuration.", "verify_start_failed": "Configuration validation could not be started; no changes were kept.", "verify_timeout": "Configuration validation timed out; no changes were kept.", - "write_failed": "The keybinding file could not be written." + "write_failed": "The managed keybinding file could not be written." }, "hyprland_hint": "Hyprland supports one or more ordinary keys. Click selected keys again to remove them.", "list_hint": "Choose modifiers and enter the key or comma-separated key sequence. You can also create shortcuts from the keyboard view.", diff --git a/obs-integration/translations/en.json b/obs-integration/translations/en.json index 570f22b..7b2d72a 100644 --- a/obs-integration/translations/en.json +++ b/obs-integration/translations/en.json @@ -3,6 +3,7 @@ "add_remove": "Add/Remove", "adding_removing": "Adding/removing files...", "arch": "Architectures", + "build_status": "Build Status", "checking_out": "Checking out...", "checkout": "Checkout package", "commit": "Commit package", @@ -21,11 +22,16 @@ "loading": "Loading...", "loading_packages": "Loading packages...", "my_projects": "My Projects", + "no_builds": "No build results.", "no_changes": "no changes for package {name}", "no_editable": "No editable files found.", "no_files": "No files found.", "no_packages": "No packages found.", "no_projects": "No projects found.", + "osc_missing": "'osc' not found", + "osc_missing_hint": "Install the 'osc' package to start using this plugin.", + "osc_not_configured": "OBS account not configured", + "osc_not_configured_hint": "Create ~/.config/osc/oscrc before browsing projects.", "rebuild": "Rebuild package", "rebuilding_pkg": "Rebuilding package...", "reload_projects": "Reload projects", @@ -43,25 +49,19 @@ "service_remote_run": "Service Remote Run", "service_run": "Service Manual Run", "service_run_all": "Service Run All", - "osc_missing": "'osc' not found", - "osc_missing_hint": "Install the 'osc' package to start using this plugin.", - "osc_not_configured": "OBS account not configured", - "osc_not_configured_hint": "Create ~/.config/osc/oscrc before browsing projects.", - "build_status": "Build Status", - "status_refresh": "Refresh status", - "status_loading": "Loading status...", - "no_builds": "No build results.", - "status_succeeded": "Succeeded", - "status_finished": "Finished", - "status_failed": "Failed", - "status_unresolvable": "Unresolvable", + "status_blocked": "Blocked", "status_building": "Building", + "status_excluded": "Excluded", + "status_failed": "Failed", + "status_finished": "Finished", + "status_loading": "Loading status...", + "status_refresh": "Refresh status", "status_scheduled": "Scheduled", "status_signing": "Signing", - "status_blocked": "Blocked", - "status_excluded": "Excluded", + "status_succeeded": "Succeeded", "status_unbuildable": "Unbuildable", "status_unknown": "Unknown", + "status_unresolvable": "Unresolvable", "update_changes": "Update {name}.changes", "update_dir": "Update directory", "updating_dir": "Updating directory..." diff --git a/procmon/translations/en.json b/procmon/translations/en.json index 06793c6..b4bfd70 100644 --- a/procmon/translations/en.json +++ b/procmon/translations/en.json @@ -1,59 +1,59 @@ { - "settings": { - "refresh_interval": { - "label": "Refresh interval (ms)", - "description": "How often the process list is resampled." - }, - "sort_by": { - "label": "Default sort column", - "description": "Column the process table is sorted by when the panel opens.", - "options": { - "cpu": "CPU", - "mem": "Memory", - "pid": "PID", - "cmd": "Command" - } - }, - "kill_command": { - "label": "Kill command", - "description": "Command run against a selected PID (the PID is appended). Empty uses kill -TERM." - }, - "show_count": { - "label": "Show process count", - "description": "Append the number of processes to the bar widget text." - }, - "glyph": { - "label": "Widget icon", - "description": "Glyph shown in the bar widget." - }, - "icon_only": { - "label": "Icon only", - "description": "Show only a CPU icon in the bar widget; details move to the tooltip." - } - }, - "widget": { - "tooltip": "CPU {cpu}% RAM {ram}% · {n} processes" - }, "panel": { - "title": "Processes", - "refreshed_at": "Updated {time}", - "refresh": "Refresh", - "load": "Load", - "search_placeholder": "Filter by name, user or PID", - "sort_asc": "asc", - "sort_desc": "desc", "col": { - "pid": "PID", + "cmd": "COMMAND", "cpu": "CPU%", "cpu_raw": "CPU", "mem": "MEM%", "mem_raw": "MEM", + "pid": "PID", "rss": "RSS", - "stat": "S", - "cmd": "COMMAND" + "stat": "S" }, "count": "{n} processes", + "kill_tip": "Kill {pid}", + "load": "Load", "no_processes": "No matching processes", - "kill_tip": "Kill {pid}" + "refresh": "Refresh", + "refreshed_at": "Updated {time}", + "search_placeholder": "Filter by name, user or PID", + "sort_asc": "asc", + "sort_desc": "desc", + "title": "Processes" + }, + "settings": { + "glyph": { + "description": "Glyph shown in the bar widget.", + "label": "Widget icon" + }, + "icon_only": { + "description": "Show only a CPU icon in the bar widget; details move to the tooltip.", + "label": "Icon only" + }, + "kill_command": { + "description": "Command run against a selected PID (the PID is appended). Empty uses kill -TERM.", + "label": "Kill command" + }, + "refresh_interval": { + "description": "How often the process list is resampled.", + "label": "Refresh interval (ms)" + }, + "show_count": { + "description": "Append the number of processes to the bar widget text.", + "label": "Show process count" + }, + "sort_by": { + "description": "Column the process table is sorted by when the panel opens.", + "label": "Default sort column", + "options": { + "cmd": "Command", + "cpu": "CPU", + "mem": "Memory", + "pid": "PID" + } + } + }, + "widget": { + "tooltip": "CPU {cpu}% RAM {ram}% · {n} processes" } } diff --git a/shell-command/translations/en.json b/shell-command/translations/en.json index 51a48f1..bb041ee 100644 --- a/shell-command/translations/en.json +++ b/shell-command/translations/en.json @@ -1,25 +1,25 @@ { - "hint_title": "Run a shell command", - "hint_subtitle": "Type a command after /sh and press Enter to open it in your terminal", - "run_title": "Run: {command}", - "run_subtitle": "Opens in your default terminal", - "run_subtitle_found": "{command} found — opens in your default terminal", - "history_subtitle": "Recent command", - "suggest_subtitle": "Suggestion", - "snap_subtitle": "Complete: {command} — Enter to run", - "snippet_subtitle": "Snippet", - "cd_open_title": "Open in: {path}", - "cd_open_subtitle": "Opens terminal in this folder", "cd_empty": "No folders found", "cd_empty_subtitle": "Type path or check workspace setting", + "cd_open_subtitle": "Opens terminal in this folder", + "cd_open_title": "Open in: {path}", + "hint_subtitle": "Type a command after /sh and press Enter to open it in your terminal", + "hint_title": "Run a shell command", + "history_subtitle": "Recent command", + "run_subtitle": "Opens in your default terminal", + "run_subtitle_found": "{command} found — opens in your default terminal", + "run_title": "Run: {command}", "settings": { "default_workspace": { - "label": "Default Workspace", - "description": "Working directory commands run in. Leave empty to use the terminal's current directory." + "description": "Working directory commands run in. Leave empty to use the terminal's current directory.", + "label": "Default Workspace" }, "snippets": { - "label": "Snippets", - "description": "Commands shown when /sh is empty. Each entry is one command." + "description": "Commands shown when /sh is empty. Each entry is one command.", + "label": "Snippets" } - } + }, + "snap_subtitle": "Complete: {command} — Enter to run", + "snippet_subtitle": "Snippet", + "suggest_subtitle": "Suggestion" } diff --git a/shell-command/translations/vi.json b/shell-command/translations/vi.json index 750cdf9..f929225 100644 --- a/shell-command/translations/vi.json +++ b/shell-command/translations/vi.json @@ -1,25 +1,25 @@ { - "hint_title": "Chạy lệnh shell", - "hint_subtitle": "Gõ lệnh sau /sh rồi nhấn Enter để mở trong terminal", - "run_title": "Chạy: {command}", - "run_subtitle": "Mở trong terminal mặc định", - "run_subtitle_found": "Tìm thấy {command} — mở trong terminal mặc định", - "history_subtitle": "Lệnh gần đây", - "suggest_subtitle": "Gợi ý", - "snap_subtitle": "Hoàn tất: {command} — Enter để chạy", - "snippet_subtitle": "Snippet", - "cd_open_title": "Mở trong: {path}", - "cd_open_subtitle": "Mở terminal trong thư mục này", "cd_empty": "Không tìm thấy thư mục", "cd_empty_subtitle": "Gõ đường dẫn hoặc kiểm tra cài đặt workspace", + "cd_open_subtitle": "Mở terminal trong thư mục này", + "cd_open_title": "Mở trong: {path}", + "hint_subtitle": "Gõ lệnh sau /sh rồi nhấn Enter để mở trong terminal", + "hint_title": "Chạy lệnh shell", + "history_subtitle": "Lệnh gần đây", + "run_subtitle": "Mở trong terminal mặc định", + "run_subtitle_found": "Tìm thấy {command} — mở trong terminal mặc định", + "run_title": "Chạy: {command}", "settings": { "default_workspace": { - "label": "Thư mục làm việc", - "description": "Thư mục lệnh chạy trong đó. Để trống dùng thư mục hiện tại của terminal." + "description": "Thư mục lệnh chạy trong đó. Để trống dùng thư mục hiện tại của terminal.", + "label": "Thư mục làm việc" }, "snippets": { - "label": "Snippets", - "description": "Lệnh hiện khi /sh trống. Mỗi mục là một lệnh." + "description": "Lệnh hiện khi /sh trống. Mỗi mục là một lệnh.", + "label": "Snippets" } - } + }, + "snap_subtitle": "Hoàn tất: {command} — Enter để chạy", + "snippet_subtitle": "Snippet", + "suggest_subtitle": "Gợi ý" } diff --git a/voxtype/translations/en.json b/voxtype/translations/en.json index 2da4f34..43f042b 100644 --- a/voxtype/translations/en.json +++ b/voxtype/translations/en.json @@ -36,14 +36,6 @@ "description": "Show the active transcription model on the bar.", "label": "Show model on bar" }, - "streaming_color": { - "description": "Color of the icon while Voxtype is streaming live audio.", - "label": "Streaming icon color" - }, - "streaming_glyph": { - "description": "Noctalia glyph shown while Voxtype is streaming live audio.", - "label": "Streaming icon" - }, "stopped_color": { "description": "Color of the icon while Voxtype is not running.", "label": "Stopped icon color" @@ -52,6 +44,14 @@ "description": "Noctalia glyph shown while Voxtype is not running.", "label": "Stopped icon" }, + "streaming_color": { + "description": "Color of the icon while Voxtype is streaming live audio.", + "label": "Streaming icon color" + }, + "streaming_glyph": { + "description": "Noctalia glyph shown while Voxtype is streaming live audio.", + "label": "Streaming icon" + }, "transcribing_color": { "description": "Color of the icon while Voxtype is transcribing recorded audio.", "label": "Transcribing icon color"