Add translation management tool suite and update Chinese translations

- Introduced a comprehensive guide for the translation management tool suite, detailing components, usage, and best practices.
- Added `translation-manager.py`, `translation-cleaner.py`, and `manage-translations.sh` scripts for managing translations.
- Updated the Chinese translation file (`zh_CN.json`) to improve existing translations and remove unused keys.
- Enhanced documentation with examples and troubleshooting tips for better user experience.
This commit is contained in:
月月
2025-06-17 14:29:33 +08:00
parent b32734b9f5
commit 89e25e3504
8 changed files with 1348 additions and 661 deletions
+18 -314
View File
@@ -35,7 +35,6 @@
"Closes right sidebar on press": "Closes right sidebar on press",
"Copy": "Copy",
"Copy code": "Copy code",
"Ctrl+O to expand the sidebar\nCtrl+P to detach sidebar into a window": "Ctrl+O to expand the sidebar\nCtrl+P to detach sidebar into a window",
"Current API endpoint: {0}\nSet it with {1}mode PROVIDER": "Current API endpoint: {0}\nSet it with {1}mode PROVIDER",
"Current model: {0}\nSet it with {1}model MODEL": "Current model: {0}\nSet it with {1}model MODEL",
"Decrease brightness": "Decrease brightness",
@@ -48,7 +47,6 @@
"Download complete": "Download complete",
"Edit": "Edit",
"Enter text to translate...": "Enter text to translate...",
"Experimental | Online | Google's model\nCan do a little more but doesn't search quickly": "Experimental | Online | Google's model\nCan do a little more but doesn't search quickly",
"Finished tasks will go here": "Finished tasks will go here",
"For desktop wallpapers | Good quality": "For desktop wallpapers | Good quality",
"For storing API keys and other sensitive information": "For storing API keys and other sensitive information",
@@ -63,10 +61,7 @@
"Input": "Input",
"Intelligence": "Intelligence",
"Interface": "Interface",
"Interrupts possibility of overview being toggled on release. ": "Interrupts possibility of overview being toggled on release. ",
"Invalid API provider. Supported: \n- ": "Invalid API provider. Supported: \n- ",
"Invalid arguments. Must provide `key` and `value`.": "Invalid arguments. Must provide `key` and `value`.",
"Invalid model. Supported: \n```\n": "Invalid model. Supported: \n```\n",
"Jump to current month": "Jump to current month",
"Keep system awake": "Keep system awake",
"Large images | God tier quality, no NSFW.": "Large images | God tier quality, no NSFW.",
@@ -86,8 +81,6 @@
"Nothing here!": "Nothing here!",
"Notifications": "Notifications",
"OK": "OK",
"Online via {0} | {1}'s model": "Online via {0} | {1}'s model",
"Online | Google's model\nGives up-to-date information with search.": "Online | Google's model\nGives up-to-date information with search.",
"Open file link": "Open file link",
"Opens cheatsheet on press": "Opens cheatsheet on press",
"Opens left sidebar on press": "Opens left sidebar on press",
@@ -98,7 +91,6 @@
"Output": "Output",
"Page {0}": "Page {0}",
"Plasma Settings": "Plasma Settings",
"Provider set to ": "Provider set to ",
"Reboot": "Reboot",
"Reboot to firmware settings": "Reboot to firmware settings",
"Reload Hyprland & Quickshell": "Reload Hyprland & Quickshell",
@@ -122,19 +114,15 @@
"Shutdown": "Shutdown",
"Silent": "Silent",
"Sleep": "Sleep",
"Switched to search mode. Continue with the user's request.": "Switched to search mode. Continue with the user's request.",
"System": "System",
"Task Manager": "Task Manager",
"Task description": "Task description",
"Temperature must be between 0 and 2": "Temperature must be between 0 and 2",
"Temperature set to {0}": "Temperature set to {0}",
"Temperature: {0}": "Temperature: {0}",
"That didn't work. Tips:\n- Check your tags and NSFW settings\n- If you don't have a tag in mind, type a page number": "That didn't work. Tips:\n- Check your tags and NSFW settings\n- If you don't have a tag in mind, type a page number",
"The current API used. Endpoint: ": "The current API used. Endpoint: ",
"The hentai one | Great quantity, a lot of NSFW, quality varies wildly": "The hentai one | Great quantity, a lot of NSFW, quality varies wildly",
"The popular one | Best quantity, but quality can vary wildly": "The popular one | Best quantity, but quality can vary wildly",
"Thinking": "Thinking",
"This is necessary because GlobalShortcut.onReleased in quickshell triggers whether or not you press something else while holding the key. ": "This is necessary because GlobalShortcut.onReleased in quickshell triggers whether or not you press something else while holding the key. ",
"To make sure this works consistently, use binditn = MODKEYS, catchall in an automatically triggered submap that includes everything.": "To make sure this works consistently, use binditn = MODKEYS, catchall in an automatically triggered submap that includes everything.",
"Toggle clipboard query on overview widget": "Toggle clipboard query on overview widget",
"Toggle emoji query on overview widget": "Toggle emoji query on overview widget",
@@ -155,318 +143,34 @@
"Unknown Album": "Unknown Album",
"Unknown Artist": "Unknown Artist",
"Unknown Title": "Unknown Title",
"Unknown command: ": "Unknown command: ",
"Unknown function call: {0}": "Unknown function call: {0}",
"Uptime: {0}": "Uptime: {0}",
"Use casual tone. No user knowledge is to be assumed except basic Linux literacy. Be brief and concise: When explaining concepts, use bullet points (prefer minus sign (-) over asterisk (*)) and highlight keywords in **bold** to pinpoint the main concepts instead of long paragraphs. You are also encouraged to split your response with h2 headers, each header title beginning with an emoji, like `## 🐧 Linux`. When making changes to the user's config, you must get the config to know what values there are before setting.": "Use casual tone. No user knowledge is to be assumed except basic Linux literacy. Be brief and concise: When explaining concepts, use bullet points (prefer minus sign (-) over asterisk (*)) and highlight keywords in **bold** to pinpoint the main concepts instead of long paragraphs. You are also encouraged to split your response with h2 headers, each header title beginning with an emoji, like `## 🐧 Linux`. When making changes to the user's config, you must get the config to know what values there are before setting.",
"View Markdown source": "View Markdown source",
"Volume": "Volume",
"Volume mixer": "Volume mixer",
"Waifus only | Excellent quality, limited quantity": "Waifus only | Excellent quality, limited quantity",
"Waiting for response...": "Waiting for response...",
"Workspace": "Workspace",
"\nSet with /mode PROVIDER": "\nSet with /mode PROVIDER",
"about": "About",
"accessed": "Accessed",
"account": "Account",
"active": "Active",
"active_state": "Active",
"addon": "Add-on",
"addons": "Add-ons",
"address": "Address",
"admin": "Administrator",
"align": "Align",
"always_on_top": "Always on Top",
"animate": "Animate",
"app": "App",
"appearance": "Appearance",
"application": "Application",
"applications": "Applications",
"apply": "Apply",
"apps": "Apps",
"auto": "Auto",
"background": "Background",
"balanced": "Balanced",
"bar": "Bar",
"bars": "Bars",
"battery": "Battery",
"bluetooth": "Bluetooth",
"blur": "Blur",
"border": "Border",
"bottom": "Bottom",
"brightness": "Brightness",
"bring_to_front": "Bring to Front",
"bytes": "{0} bytes",
"cancel": "Cancel",
"center": "Center",
"characters": "{0} characters",
"charging": "Charging",
"clear_all": "Clear All",
"clicked": "Clicked",
"close": "Close",
"collapse": "Collapse",
"color": "Color",
"command": "Command",
"connected": "Connected",
"connecting": "Connecting...",
"context_menu": "Context Menu",
"copy": "Copy",
"cpu": "CPU",
"created": "Created",
"critical": "Critical",
"customize": "Customize",
"cut": "Cut",
"dark": "Dark",
"dashboard": "Dashboard",
"date": "Date",
"debug": "Debug",
"default": "Default",
"degrees": "{0}°",
"delete": "Delete",
"demo": "Demo",
"desktop": "Desktop",
"dialog": "Dialog",
"disabled": "Disabled",
"discharging": "Discharging",
"disconnected": "Disconnected",
"disk": "Disk",
"display": "Display",
"distribute": "Distribute",
"dock": "Dock",
"documents": "Documents",
"double_clicked": "Double Clicked",
"downloads": "Downloads",
"dragged": "Dragged",
"dropdown": "Dropdown",
"dropped": "Dropped",
"effect": "Effect",
"email": "Email",
"enabled": "Enabled",
"error": "Error",
"ethernet": "Ethernet",
"example": "Example",
"execute": "Execute",
"exit": "Exit",
"expand": "Expand",
"extension": "Extension",
"extensions": "Extensions",
"fan": "Fan",
"favorites": "Favorites",
"file": "File",
"files": "Files",
"filter": "Filter",
"flip": "Flip",
"floating": "Floating",
"focus": "Focus",
"folder": "Folder",
"folders": "Folders",
"foreground": "Foreground",
"format": "Format",
"full": "Full",
"fullscreen": "Fullscreen",
"gigabytes": "{0} GB",
"gigahertz": "{0} GHz",
"glow": "Glow",
"group": "Group",
"guest": "Guest",
"headphones": "Headphones",
"help": "Help",
"hertz": "{0} Hz",
"hibernate": "Hibernate",
"hidden": "Hidden",
"hide": "Hide",
"highlight": "Highlight",
"hint": "Hint",
"home": "Home",
"hour": "Hour",
"hours": "Hours",
"hover": "Hover",
"inactive": "Inactive",
"info": "Info",
"input": "Input",
"install": "Install",
"justify": "Justify",
"keybinds": "Key Bindings",
"keyboard": "Keyboard",
"kilobytes": "{0} KB",
"kilohertz": "{0} kHz",
"landscape": "Landscape",
"language": "Language",
"launcher": "Launcher",
"left": "Left",
"light": "Light",
"loading": "Loading...",
"lock": "Lock",
"log": "Log",
"logout": "Logout",
"long_pressed": "Long Pressed",
"low": "Low",
"manual": "Manual",
"margin": "Margin",
"maximize": "Maximize",
"megabytes": "{0} MB",
"megahertz": "{0} MHz",
"memory": "Memory",
"menu": "Menu",
"menubar": "Menu Bar",
"microphone": "Microphone",
"minimize": "Minimize",
"minute": "Minute",
"minutes": "Minutes",
"mirror": "Mirror",
"modal": "Modal",
"modified": "Modified",
"monitor": "Monitor",
"mouse": "Mouse",
"move": "Move",
"music": "Music",
"mute": "Mute",
"network": "Network",
"next": "Next",
"no": "No",
"no_notifications": "No notifications",
"notifications": "Notifications",
"off": "Off",
"ok": "OK",
"on": "On",
"opacity": "Opacity",
"open": "Open",
"orientation": "Orientation",
"outline": "Outline",
"output": "Output",
"overview": "Overview",
"owner": "Owner",
"package": "Package",
"packages": "Packages",
"padding": "Padding",
"panel": "Panel",
"panels": "Panels",
"panned": "Panned",
"password": "Password",
"paste": "Paste",
"pause": "Pause",
"percent": "{0}%",
"performance": "Performance",
"permissions": "Permissions",
"phone": "Phone",
"pictures": "Pictures",
"pinched": "Pinched",
"pinned": "Pinned",
"pixels": "{0}px",
"placeholder": "Placeholder",
"play": "Play",
"plugin": "Plugin",
"plugins": "Plugins",
"popup": "Popup",
"portrait": "Portrait",
"power": "Power",
"power_saver": "Power Saver",
"pressed": "Pressed",
"previous": "Previous",
"profile": "Profile",
"properties": "Properties",
"quiet": "Quiet",
"quit": "Quit",
"read": "Read",
"recent": "Recent",
"recording": "Recording",
"refresh": "Refresh",
"refresh_rate": "Refresh Rate",
"reload": "Reload",
"rename": "Rename",
"reset": "Reset",
"resize": "Resize",
"resolution": "Resolution",
"restart": "Restart",
"restore": "Restore",
"right": "Right",
"right_clicked": "Right Clicked",
"rotate": "Rotate",
"rotated": "Rotated",
"sample": "Sample",
"save": "Save",
"scale": "Scale",
"screenshot": "Screenshot",
"scrolled": "Scrolled",
"search": "Search",
"second": "Second",
"seconds": "Seconds",
"selection": "Selection",
"send_to_back": "Send to Back",
"settings": "Settings",
"shadow": "Shadow",
"shortcuts": "Shortcuts",
"show": "Show",
"shutdown": "Shutdown",
"sidebar": "Sidebar",
"silent": "Silent",
"size": "Size",
"snapped": "Snapped",
"software": "Software",
"space": "Space",
"speaker": "Speaker",
"statusbar": "Status Bar",
"sticky": "Sticky",
"stop": "Stop",
"style": "Style",
"success": "Success",
"suspend": "Suspend",
"swiped": "Swiped",
"systray": "System Tray",
"tapped": "Tapped",
"taskbar": "Taskbar",
"temperature": "Temperature",
"terabytes": "{0} TB",
"terminal": "Terminal",
"test": "Test",
"theme": "Theme",
"tiled": "Tiled",
"time": "Time",
"tips": "Tips",
"today": "Today",
"tomorrow": "Tomorrow",
"toolbar": "Toolbar",
"tooltip": "Tooltip",
"top": "Top",
"touchpad": "Touchpad",
"trace": "Trace",
"transform": "Transform",
"transition": "Transition",
"transparency": "Transparency",
"trash": "Trash",
"tutorial": "Tutorial",
"type": "Type",
"uninstall": "Uninstall",
"unlock": "Unlock",
"unmute": "Unmute",
"unpinned": "Unpinned",
"unsticky": "Unsticky",
"update": "Update",
"upgrade": "Upgrade",
"user": "User",
"username": "Username",
"verbose": "Verbose",
"version": "Version",
"videos": "Videos",
"visible": "Visible",
"volume": "Volume",
"warning": "Warning",
"welcome": "Welcome",
"widget": "Widget",
"widgets": "Widgets",
"wifi": "Wi-Fi",
"window": "Window",
"windowed": "Windowed",
"windows": "Windows",
"workspace": "Workspace",
"workspaces": "Workspaces",
"write": "Write",
"yes": "Yes",
"yesterday": "Yesterday",
"zoomed": "Zoomed",
"{0} (copied)": "{0} (copied)",
"{0} Safe Storage": "{0} Safe Storage",
"{0} does not require an API key": "{0} does not require an API key",
"{0} queries pending": "{0} queries pending",
"{0} | Right-click to configure": "{0} | Right-click to configure"
"{0} | Right-click to configure": "{0} | Right-click to configure",
"Set with /mode PROVIDER": "Set with /mode PROVIDER",
"Invalid API provider. Supported: \n-": "Invalid API provider. Supported: \n-",
"Unknown command:": "Unknown command:",
"Type /key to get started with online models\nCtrl+O to expand the sidebar\nCtrl+P to detach sidebar into a window": "Type /key to get started with online models\nCtrl+O to expand the sidebar\nCtrl+P to detach sidebar into a window",
"This is necessary because GlobalShortcut.onReleased in quickshell triggers whether or not you press something else while holding the key.": "This is necessary because GlobalShortcut.onReleased in quickshell triggers whether or not you press something else while holding the key.",
"The current API used. Endpoint:": "The current API used. Endpoint:",
"Provider set to": "Provider set to",
"Invalid model. Supported: \n```": "Invalid model. Supported: \n```",
"Interrupts possibility of overview being toggled on release.": "Interrupts possibility of overview being toggled on release.",
"Enter tags, or \"{0}\" for commands": "Enter tags, or \"{0}\" for commands",
"That didn't work. Tips:\n- Check your tags and NSFW settings\n- If you don't have a tag in mind, type a page number": "That didn't work. Tips:\n- Check your tags and NSFW settings\n- If you don't have a tag in mind, type a page number",
"Online | Google's model\nGives up-to-date information with search.": "Online | Google's model\nGives up-to-date information with search.",
"Online via {0} | {1}'s model": "Online via {0} | {1}'s model",
"Switched to search mode. Continue with the user's request.": "Switched to search mode. Continue with the user's request.",
"Experimental | Online | Google's model\nCan do a little more but doesn't search quickly": "Experimental | Online | Google's model\nCan do a little more but doesn't search quickly",
"Message the model... \"{0}\" for commands": "Message the model... \"{0}\" for commands",
"To set an API key, pass it with the command\n\nTo view the key, pass \"get\" with the command<br/>\n\n### For {0}:\n\n**Link**: {1}\n\n{2}": "To set an API key, pass it with the command\n\nTo view the key, pass \"get\" with the command<br/>\n\n### For {0}:\n\n**Link**: {1}\n\n{2}"
}