Add Simplified Chinese (zh) localization (#901)
* feat: add Simplified Chinese (zh) localization - Add complete values-zh/strings.xml (921 strings, all keys covered) - Translate 107 hardcoded UI strings across 34 Kotlin files - Add 简体中文 option to in-app language picker - Terminology aligned with official Hermes dashboard zh translations * fix: resource-ize hardcoded Chinese strings per review Address Hy4ri's review on PR #901: - Move 104 hardcoded Chinese UI strings to string resources (English in values/strings.xml, Chinese in values-zh/strings.xml) referenced via stringResource() - SystemViewModel labels -> @StringRes + AndroidViewModel with resource-based toast templates - Make TodoTaskCardTest assertion locale-agnostic via getString() - Update cookie tests to assert new host-agnostic session cookie behavior (WiFi/Tailscale switch-safe) - Session cookie mirroring to WILDCARD bucket survives host switches * style: apply ktlintFormat per review --------- Co-authored-by: hermes-i18n <hermes-i18n@localhost>
This commit is contained in:
1 parent
0a5eb7a5b0
commit
fdbd98af3e
46 files changed
+1420
-133
No files matched your search
@@ -224,6 +224,7 @@
|
||||
<string name="settings_item_language">Language</string>
|
||||
<string name="language_system">System</string>
|
||||
<string name="language_english">English</string>
|
||||
<string name="language_chinese">简体中文</string>
|
||||
<string name="language_korean">한국어</string>
|
||||
|
||||
<!-- Connect Screen -->
|
||||
@@ -1043,4 +1044,113 @@
|
||||
<string name="image_viewer_save_failed">Could not save image</string>
|
||||
<string name="image_viewer_load_failed">Could not load image: %1$s</string>
|
||||
<string name="image_viewer_share_failed">Could not share image</string>
|
||||
<!-- hardcoded-UI string migration (en) -->
|
||||
<string name="analytics_most_used_components">Most Used Components</string>
|
||||
<string name="analytics_no_model_data">No model data available</string>
|
||||
<string name="analytics_no_skill_data">No skill data available</string>
|
||||
<string name="analytics_no_tool_data">No tool data available</string>
|
||||
<string name="analytics_overview_desc">Overview of your most active models, skills, and tools.</string>
|
||||
<string name="channels_creds_path_format">Credentials are written to %1$s</string>
|
||||
<string name="channels_expiry_format">Expires: %1$s</string>
|
||||
<string name="channels_search_placeholder">Search channels…</string>
|
||||
<string name="chat_attach_file">Attach file</string>
|
||||
<string name="chat_save_attachment">Save %1$s</string>
|
||||
<string name="chat_switch_model_title">Switch model (this chat)</string>
|
||||
<string name="config_clear_value">Clear value</string>
|
||||
<string name="config_invalid_json">Invalid JSON</string>
|
||||
<string name="config_no_matches">No matches</string>
|
||||
<string name="config_path">Path: %1$s</string>
|
||||
<string name="config_reset_default">Reset to default</string>
|
||||
<string name="config_save_changes">Save changes</string>
|
||||
<string name="config_search_placeholder">Search settings…</string>
|
||||
<string name="context_cache_read">Cache read</string>
|
||||
<string name="context_cache_write">Cache write</string>
|
||||
<string name="context_completion_output">Completion (output)</string>
|
||||
<string name="context_compressed">compressed ×%1$s</string>
|
||||
<string name="context_prompt_input">Prompt (input)</string>
|
||||
<string name="context_tokens_note">Prompt tokens reflect total context used by this session so far.</string>
|
||||
<string name="context_window">Context window</string>
|
||||
<string name="gif_play">Play GIF</string>
|
||||
<string name="kanban_filter_placeholder">Filter tasks by title, status, or assignee...</string>
|
||||
<string name="logs_clipboard_label">Hermes Logs</string>
|
||||
<string name="logs_search_placeholder">Search logs...</string>
|
||||
<string name="mcp_no_match">No servers match "%1$s"</string>
|
||||
<string name="mcp_search_placeholder">Search MCP servers...</string>
|
||||
<string name="memory_learned_skills">Learned Skills</string>
|
||||
<string name="memory_memories_facts">Memories & Facts</string>
|
||||
<string name="memory_recent_events">Recent Agent Self-Improvement Events</string>
|
||||
<string name="message_reasoning_steps">Reasoning · %1$s steps</string>
|
||||
<string name="message_your_response">Your response</string>
|
||||
<string name="moa_add_preset">Add preset</string>
|
||||
<string name="moa_add_reference">Add reference model</string>
|
||||
<string name="moa_new_preset_name">new preset name</string>
|
||||
<string name="moa_no_presets">No presets configured</string>
|
||||
<string name="moa_preset_label">Preset:</string>
|
||||
<string name="moa_presets_note">Presets appear as models under the Mixture of Agents provider.</string>
|
||||
<string name="moa_reference_models">Reference models</string>
|
||||
<string name="moa_search_providers">Search providers...</string>
|
||||
<string name="moa_set_default">Set default</string>
|
||||
<string name="moa_title">Mixture of Agents</string>
|
||||
<string name="model_aux_tasks_label">Auxiliary tasks</string>
|
||||
<string name="model_aux_tasks_title">Auxiliary Tasks</string>
|
||||
<string name="model_expensive_title">Expensive Model</string>
|
||||
<string name="model_main_label">Main model</string>
|
||||
<string name="model_moa_label">Mixture of Agents</string>
|
||||
<string name="model_new_sessions">applies to new sessions</string>
|
||||
<string name="model_picker_loading">Loading models…</string>
|
||||
<string name="model_picker_no_models">No models available.</string>
|
||||
<string name="model_picker_search">Search models and providers...</string>
|
||||
<string name="model_reset_all_auto">Reset all to auto</string>
|
||||
<string name="model_search_placeholder">Search models...</string>
|
||||
<string name="model_set_aux">Set Aux: %1$s</string>
|
||||
<string name="model_set_main">Set Main Model</string>
|
||||
<string name="model_settings">Model Settings</string>
|
||||
<string name="platform_remove_confirm_text">This will permanently remove this platform\'s configuration.</string>
|
||||
<string name="platform_remove_confirm_title">Remove %1$s?</string>
|
||||
<string name="platform_remove_desc">Remove platform</string>
|
||||
<string name="platform_setup_qr">Set up with QR</string>
|
||||
<string name="plugins_repo_placeholder">owner/repo, owner/repo/subdir, or https://...</string>
|
||||
<string name="plugins_search_placeholder">Search plugins...</string>
|
||||
<string name="profile_builder_placeholder">Describe the purpose of this profile</string>
|
||||
<string name="profile_command">Command: %1$s</string>
|
||||
<string name="profile_remove_server">Remove Server</string>
|
||||
<string name="profile_transport">Transport: %1$s</string>
|
||||
<string name="profiles_create">Create Profile</string>
|
||||
<string name="profiles_more_options">More options</string>
|
||||
<string name="providers_via">via %1$s</string>
|
||||
<string name="skills_source">Source: %1$s</string>
|
||||
<string name="subagent_agent_plan">AGENT PLAN</string>
|
||||
<string name="subagent_live_transcript">LIVE TRANSCRIPT</string>
|
||||
<string name="subagent_no_active">No active tasks or plan items.</string>
|
||||
<string name="subagent_summary">Summary: %1$s</string>
|
||||
<string name="subagent_task_plan_inspection">Task & Plan Inspection</string>
|
||||
<string name="system_auth_required">Auth required</string>
|
||||
<string name="system_checkpoint_prune">Checkpoint prune</string>
|
||||
<string name="system_config_migrate">Config migrate</string>
|
||||
<string name="system_curator_run">Curator run</string>
|
||||
<string name="system_more_lines">... %1$d more line(s)</string>
|
||||
<string name="system_prompt_size_check">Prompt size check</string>
|
||||
<string name="system_security_audit">Security audit</string>
|
||||
<string name="system_skills_update">Skills update</string>
|
||||
<string name="tg_onboarding_add_user_id">Add user ID</string>
|
||||
<string name="tg_onboarding_allowed_users">Allowed users:</string>
|
||||
<string name="tg_onboarding_connected_as">Connected as @%1$s</string>
|
||||
<string name="tg_onboarding_qr_expires">QR code expires in: %1$s</string>
|
||||
<string name="tg_onboarding_save_restart">Save and restart</string>
|
||||
<string name="tg_onboarding_saving">Saving configuration…</string>
|
||||
<string name="tg_onboarding_scan_hint">Open Telegram and scan the QR code displayed in the app.</string>
|
||||
<string name="tg_onboarding_user_id_placeholder">Telegram user ID</string>
|
||||
<string name="todo_task_count">Tasks %1$d/%2$d</string>
|
||||
<string name="tool_duration">Duration: %1$s</string>
|
||||
<string name="tool_redacted">· redacted</string>
|
||||
<string name="toolsets_search_placeholder">Search toolsets...</string>
|
||||
<string name="video_play">Play Video</string>
|
||||
<string name="webhooks_delete_subscription">Delete subscription</string>
|
||||
<string name="webhooks_placeholder">What this webhook does...</string>
|
||||
<string name="webhooks_receiver_url">Receiver URL: %1$s</string>
|
||||
<string name="webhooks_secret_configured">Secret configured</string>
|
||||
<string name="system_dump">Dump</string>
|
||||
<!-- system action toast templates -->
|
||||
<string name="system_action_started">%1$s started</string>
|
||||
<string name="system_action_failed">%1$s failed: %2$s</string>
|
||||
</resources>
|
||||
Reference in new issue
Block a user