$tsDir = "d:\aoyiduo\woterm\woterm\private\languages\ts"

$translations = @{
    "zh_CN" = @{
        "MoDBRestoreSetup||SQLiteDB selection" = "SQLite数据库选择"
        "MoLanguageView||After modifying the language, you need to restart the application to take effect." = "修改语言后，需要重启应用才能生效。"
        "QKxCombineKeyActionDialog||+Alt" = "+Alt"
        "QKxCombineKeyActionDialog||-Alt" = "-Alt"
        "QKxCombineKeyActionDialog||+Ansi" = "+Ansi"
        "QKxCombineKeyActionDialog||-Ansi" = "-Ansi"
        "QKxCombineKeyActionDialog||+AppCuKeys" = "+应用光标键"
        "QKxCombineKeyActionDialog||-AppCuKeys" = "-应用光标键"
        "QKxCombineKeyActionDialog||+AppKeyPad" = "+应用小键盘"
        "QKxCombineKeyActionDialog||-AppKeyPad" = "-应用小键盘"
        "QKxCombineKeyActionDialog||+AppScreen" = "+应用屏幕"
        "QKxCombineKeyActionDialog||-AppScreen" = "-应用屏幕"
        "QKxCombineKeyActionDialog||+Ctrl" = "+Ctrl"
        "QKxCombineKeyActionDialog||-Ctrl" = "-Ctrl"
        "QKxCombineKeyActionDialog||+Meta" = "+Meta"
        "QKxCombineKeyActionDialog||-Meta" = "-Meta"
        "QKxCombineKeyActionDialog||+NewLine" = "+新行"
        "QKxCombineKeyActionDialog||-NewLine" = "-新行"
        "QKxCombineKeyActionDialog||None" = "无"
        "QKxCombineKeyActionDialog||+Shift" = "+Shift"
        "QKxCombineKeyActionDialog||-Shift" = "-Shift"
        "QKxDockGuider||Drop here" = "拖放到此处"
        "QKxDockGuider||Form" = "表单"
        "QKxFtpFilterInput||Form" = "表单"
        "QKxInputHistoryDialog||Current input message is empty." = "当前输入消息为空。"
        "QKxInputHistoryDialog||Dialog" = "对话框"
        "QKxInputHistoryDialog||Remove" = "移除"
        "QKxItemFilterDialog||Dialog" = "对话框"
        "QKxLoadingAnimation||Form" = "表单"
        "QKxSearch||Border" = "边框"
        "QKxSessionPanel||Search sessions…" = "搜索会话…"
        "QKxSessionTreeView||Delete \"%1\" and all its contents?" = "删除 \"%1\" 及其所有内容？"
        "QKxSessionTreeView||Delete Folder" = "删除文件夹"
        "QKxSessionTreeView||Sessions" = "会话"
        "QKxTermCompleter||Form" = "表单"
        "QKxTermScriptReplayer||Form" = "表单"
        "QWoAboutDialog||OfficeWeb" = "官网"
        "QWoBaseToolForm||Form" = "表单"
        "QWoBindPortPermissionDialog||sudo sysctl -w net.ipv4.ip_unprivileged_port_start=0" = "sudo sysctl -w net.ipv4.ip_unprivileged_port_start=0"
        "QWoDbBackupDialog||backup success." = "备份成功。"
        "QWoDbBackupDialog||Input a file path to backup." = "请输入备份文件路径。"
        "QWoDbPowerBackupDialog||sftp server" = "sftp服务器"
        "QWoDBServerMergeModel||path" = "路径"
        "QWoDBSftpDownListDialog||Backup file list" = "备份文件列表"
        "QWoEditorWindow||Ctrl+E" = "Ctrl+E"
        "QWoEditorWindow||Ctrl+S" = "Ctrl+S"
        "QWoFtpAuthorizeInput||Explicit SSL/TLS" = "显式SSL/TLS"
        "QWoFtpAuthorizeInput||Form" = "表单"
        "QWoFtpAuthorizeInput||Implicit SSL/TLS" = "隐式SSL/TLS"
        "QWoFtpAuthorizeInput||No SSL/TLS" = "无SSL/TLS"
        "QWoFtpTransferWidget||Breakpoint resume is an exclusive feature of the professional version" = "断点续传是专业版专属功能"
        "QWoFtpWidget||Failed to open file:" = "无法打开文件："
        "QWoFtpWidget||Form" = "表单"
        "QWoFtpWidget||FTP" = "FTP"
        "QWoHistoryWidget||Form" = "表单"
        "QWoHostSimpleList||Dialog" = "对话框"
        "QWoHostSimpleList||Ok" = "确定"
        "QWoIdentifyDialog||ssh-agent" = "ssh-agent"
        "QWoInternetAccessDetectionDialog||Dialog" = "对话框"
        "QWoInternetAccessDetectionDialog||Ok" = "确定"
        "QWoLockWidget||Form" = "表单"
        "QWoMainWindow||Alt+L" = "Alt+L"
        "QWoMainWindow||Alt+O" = "Alt+O"
        "QWoMainWindow||d" = "d"
        "QWoMainWindow||Plugin" = "插件"
        "QWoMenuButton||PushButton" = "按钮"
        "QWoPluginManageDialog||Are you sure to remove plugin '%1'?" = "确定要移除插件 '%1' 吗？"
        "QWoPluginManageDialog||Author" = "作者"
        "QWoPluginManageDialog||Confirm Remove" = "确认移除"
        "QWoPluginManageDialog||Copy Plugin" = "复制插件"
        "QWoPluginManageDialog||Description" = "描述"
        "QWoPluginManageDialog||Dialog" = "对话框"
        "QWoPluginManageDialog||Disable" = "禁用"
        "QWoPluginManageDialog||Disabled" = "已禁用"
        "QWoPluginManageDialog||Edit" = "编辑"
        "QWoPluginManageDialog||Enable" = "启用"
        "QWoPluginManageDialog||Enabled" = "已启用"
        "QWoPluginManageDialog||Enter new plugin name:" = "输入新插件名称："
        "QWoPluginManageDialog||Enter plugin name:" = "输入插件名称："
        "QWoPluginManageDialog||Import Plugin" = "导入插件"
        "QWoPluginManageDialog||Name" = "名称"
        "QWoPluginManageDialog||Plugin files (*.dll)" = "插件文件 (*.dll)"
        "QWoPluginManageDialog||Plugin Manager" = "插件管理器"
        "QWoPluginManageDialog||Plugin Name" = "插件名称"
        "QWoPluginManageDialog||Remove" = "移除"
        "QWoPluginManageDialog||Version" = "版本"
        "QWoPluginSessionAdapter||failed to upate information" = "更新信息失败"
        "QWoSerialInput||Form" = "表单"
        "QWoSessionFileAssociationAddDialog||.tar.gz, .ini, .sh, .log, .conf, .db, *" = ".tar.gz, .ini, .sh, .log, .conf, .db, *"
        "QWoSessionFileAssociationAddDialog||{file}" = "{file}"
        "QWoSessionFileAssociationAddDialog||Example: c:\Windows\notepad.exe {file}" = "示例：c:\Windows\notepad.exe {file}"
        "QWoSessionFTPProperty|| (EPSV)" = " (EPSV)"
        "QWoSessionInternalTreeView||Add folder" = "添加文件夹"
        "QWoSessionInternalTreeView||Add session" = "添加会话"
        "QWoSessionInternalTreeView||Continue to delete the selected items?" = "是否继续删除选中的项目？"
        "QWoSessionInternalTreeView||Deletion confirmation" = "删除确认"
        "QWoSessionInternalTreeView||Folder name:" = "文件夹名称："
        "QWoSessionInternalTreeView||Memo" = "备忘"
        "QWoSessionInternalTreeView||Name" = "名称"
        "QWoSessionInternalTreeView||New folder" = "新建文件夹"
        "QWoSessionInternalWidget||Enter keyword to search" = "输入关键字搜索"
        "QWoSessionInternalWidget||Form" = "表单"
        "QWoSessionInternalWidget||login name" = "登录名"
        "QWoSessionInternalWidget||memo" = "备忘"
        "QWoSessionManage||Confirmation" = "确认"
        "QWoSessionManage||New folder" = "新建文件夹"
        "QWoSessionManage||New session" = "新建会话"
        "QWoSessionManage||No selected items to open" = "没有选中的项目可打开"
        "QWoSessionPluginTreeView||Continue to delete the selected items?" = "是否继续删除选中的项目？"
        "QWoSessionPluginTreeView||Deletion confirmation" = "删除确认"
        "QWoSessionPluginTreeView||Folder name:" = "文件夹名称："
        "QWoSessionPluginTreeView||Memo" = "备忘"
        "QWoSessionPluginTreeView||Name" = "名称"
        "QWoSessionPluginTreeView||New folder" = "新建文件夹"
        "QWoSessionPluginWidget||Enter keyword to search" = "输入关键字搜索"
        "QWoSessionPluginWidget||Form" = "表单"
        "QWoSessionPluginWidget||login name" = "登录名"
        "QWoSessionPluginWidget||memo" = "备忘"
        "QWoSessionProperty||Explicit SSL/TLS" = "显式SSL/TLS"
        "QWoSessionProperty||Implicit SSL/TLS" = "隐式SSL/TLS"
        "QWoSessionProperty||No SSL/TLS" = "无SSL/TLS"
        "QWoSessionProperty||The name can't contain characters like (/)" = "名称不能包含 (/) 等字符"
        "QWoSessionRDPProperty||FreeRdp" = "FreeRdp"
        "QWoSessionRDPProperty||Mstsc" = "Mstsc"
        "QWoSessionToolConfigureDialog||\"{file}\"" = "\"{file}\""
        "QWoSessionToolConfigureDialog||Example: c:\Windows\notepad.exe \"{file}\"" = "示例：c:\Windows\notepad.exe \"{file}\""
        "QWoSessionToolConfigureDialog||Tab 2" = "标签 2"
        "QWoSessionTTYProperty||[DISPLAY=:0]" = "[DISPLAY=:0]"
        "QWoSessionTTYProperty||localhost:0.0" = "localhost:0.0"
        "QWoSftpTaskRunner||Form" = "表单"
        "QWoSftpTaskRunner||Mb/s" = "兆字节/秒"
        "QWoSftpWidget||Chmod" = "权限"
        "QWoSSHAuthorizeInput||Form" = "表单"
        "QWoSSHAuthorizeInput||tr" = "tr"
        "QWoSSHChartWidget||CPU" = "CPU"
        "QWoSSHChartWidget||Form" = "表单"
        "QWoSshMonitorWidget||Form" = "表单"
        "QWoSSHProcessModel||CPU" = "CPU"
        "QWoSshTermWidget||Choose a way to accept the file." = "选择一种接受文件的方式。"
        "QWoSshTermWidget||Paste text" = "粘贴文本"
        "QWoSystemOptionDialog||Ctrl+Shift+Tab" = "Ctrl+Shift+Tab"
        "QWoSystemOptionDialog||Ctrl+Tab" = "Ctrl+Tab"
        "QWoTelnetTermWidgetImpl||%1:%2" = "%1:%2"
        "QWoTermMask||Form" = "表单"
        "QWoTermWidget||Failed to create file." = "创建文件失败。"
        "QWoTermWidget||log (*.log)" = "日志 (*.log)"
        "QWoTermWidget||Save history to file" = "保存历史到文件"
        "QWoTunnelAddDialog||HTTP/SOCKS4/SOCKS5 over SSH" = "通过SSH的HTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Plain HTTP/SOCKS4/SOCKS5" = "普通HTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Port Forward over SSH" = "SSH端口转发"
        "QWoTunnelDialog||[" = "["
        "QWoTunnelDialog||]" = "]"
        "QWoTunnelDialog||No system proxy" = "无系统代理"
        "QWoTunnelHelpDialog||Dialog" = "对话框"
        "QWoTunnelHelpDialog||OK" = "确定"
        "QWoUserLoginDialog||Email:" = "邮箱："
        "QWoUserLoginDialog||PushButton" = "按钮"
        "QWoVncPlayWidget||Form" = "表单"
        "QWoVncToolForm||Form" = "表单"
        "WtPluginParamsDialog||Edit Plugin: %1" = "编辑插件：%1"
        "WtPluginParamsDialog||Failed to get parameter template" = "获取参数模板失败"
        "WtPluginParamsDialog||Failed to load plugin library:`n%1" = "加载插件库失败：`n%1"
        "WtPluginParamsDialog||Internal plugin path cannot be modified" = "内部插件路径不可修改"
        "WtPluginParamsDialog||Invalid JSON format: %1" = "无效的JSON格式：%1"
        "WtPluginParamsDialog||Invalid template JSON format: %1" = "无效的模板JSON格式：%1"
        "WtPluginParamsDialog||Load Template" = "加载模板"
        "WtPluginParamsDialog||Loading template will overwrite current parameters. Continue?" = "加载模板将覆盖当前参数，是否继续？"
        "WtPluginParamsDialog||Name:" = "名称："
        "WtPluginParamsDialog||Parameters (JSON):" = "参数 (JSON)："
        "WtPluginParamsDialog||Parameters must be a JSON object" = "参数必须是JSON对象"
        "WtPluginParamsDialog||Path:" = "路径："
        "WtPluginParamsDialog||Plugin does not support parameter template" = "插件不支持参数模板"
        "WtPluginParamsDialog||Plugin name cannot be empty" = "插件名称不能为空"
    }
}

$langFiles = @{
    "de" = "woterm_de.ts.xml"
    "es" = "woterm_es.ts.xml"
    "fr" = "woterm_fr.ts.xml"
    "hi" = "woterm_hi.ts.xml"
    "id" = "woterm_id.ts.xml"
    "ja" = "woterm_ja.ts.xml"
    "ko" = "woterm_ko.ts.xml"
    "ru" = "woterm_ru.ts.xml"
    "zh_CN" = "woterm_zh_CN.ts.xml"
    "zh_TW" = "woterm_zh_TW.ts.xml"
}

$otherLangTranslations = @{
    "de" = @{
        "QKxInputHistoryDialog||Current input message is empty." = "Die aktuelle Eingabenachricht ist leer."
        "QKxInputHistoryDialog||Remove" = "Entfernen"
        "QKxSessionPanel||Search sessions…" = "Sitzungen suchen…"
        "QKxSessionTreeView||Delete \"%1\" and all its contents?" = "\"%1\" und alle seinen Inhalt löschen?"
        "QKxSessionTreeView||Delete Folder" = "Ordner löschen"
        "QKxSessionTreeView||Sessions" = "Sitzungen"
        "QWoDBServerMergeModel||path" = "Pfad"
        "QWoEditorWindow||Ctrl+E" = "Ctrl+E"
        "QWoEditorWindow||Ctrl+S" = "Ctrl+S"
        "QWoFtpTransferWidget||Breakpoint resume is an exclusive feature of the professional version" = "Breakpoint-Fortsetzung ist eine exklusive Funktion der Professional-Version"
        "QWoHostSimpleList||Ok" = "OK"
        "QWoInternetAccessDetectionDialog||Ok" = "OK"
        "QWoMainWindow||Plugin" = "Plugin"
        "QWoPluginManageDialog||Are you sure to remove plugin '%1'?" = "Sind Sie sicher, dass Sie das Plugin '%1' entfernen möchten?"
        "QWoPluginManageDialog||Author" = "Autor"
        "QWoPluginManageDialog||Confirm Remove" = "Entfernen bestätigen"
        "QWoPluginManageDialog||Copy Plugin" = "Plugin kopieren"
        "QWoPluginManageDialog||Description" = "Beschreibung"
        "QWoPluginManageDialog||Disable" = "Deaktivieren"
        "QWoPluginManageDialog||Disabled" = "Deaktiviert"
        "QWoPluginManageDialog||Enable" = "Aktivieren"
        "QWoPluginManageDialog||Enabled" = "Aktiviert"
        "QWoPluginManageDialog||Enter new plugin name:" = "Neuen Pluginnamen eingeben:"
        "QWoPluginManageDialog||Enter plugin name:" = "Pluginnamen eingeben:"
        "QWoPluginManageDialog||Import Plugin" = "Plugin importieren"
        "QWoPluginManageDialog||Plugin files (*.dll)" = "Plugin-Dateien (*.dll)"
        "QWoPluginManageDialog||Plugin Manager" = "Plugin-Manager"
        "QWoPluginManageDialog||Plugin Name" = "Plugin-Name"
        "QWoPluginManageDialog||Version" = "Version"
        "QWoPluginSessionAdapter||failed to upate information" = "Informationen aktualisieren fehlgeschlagen"
        "QWoSessionFileAssociationAddDialog||{file}" = "{file}"
        "QWoSessionFileAssociationAddDialog||Example: c:\Windows\notepad.exe {file}" = "Beispiel: c:\Windows\notepad.exe {file}"
        "QWoSessionInternalTreeView||Add folder" = "Ordner hinzufügen"
        "QWoSessionInternalTreeView||Add session" = "Sitzung hinzufügen"
        "QWoSessionInternalTreeView||Continue to delete the selected items?" = "Möchten Sie die ausgewählten Elemente wirklich löschen?"
        "QWoSessionInternalTreeView||Deletion confirmation" = "Löschbestätigung"
        "QWoSessionInternalTreeView||Folder name:" = "Ordnername:"
        "QWoSessionInternalTreeView||New folder" = "Neuer Ordner"
        "QWoSessionInternalWidget||login name" = "Anmeldename"
        "QWoSessionManage||Confirmation" = "Bestätigung"
        "QWoSessionManage||New folder" = "Neuer Ordner"
        "QWoSessionManage||New session" = "Neue Sitzung"
        "QWoSessionManage||No selected items to open" = "Keine ausgewählten Elemente zum Öffnen"
        "QWoSessionPluginTreeView||Continue to delete the selected items?" = "Möchten Sie die ausgewählten Elemente wirklich löschen?"
        "QWoSessionPluginTreeView||Deletion confirmation" = "Löschbestätigung"
        "QWoSessionPluginTreeView||Folder name:" = "Ordnername:"
        "QWoSessionPluginTreeView||New folder" = "Neuer Ordner"
        "QWoSessionPluginWidget||login name" = "Anmeldename"
        "QWoSessionProperty||The name can't contain characters like (/)" = "Der Name darf keine Zeichen wie (/) enthalten"
        "QWoSftpTaskRunner||Mb/s" = "MB/s"
        "QWoSshTermWidget||Paste text" = "Text einfügen"
        "QWoSystemOptionDialog||Ctrl+Shift+Tab" = "Ctrl+Shift+Tab"
        "QWoSystemOptionDialog||Ctrl+Tab" = "Ctrl+Tab"
        "QWoTunnelAddDialog||HTTP/SOCKS4/SOCKS5 over SSH" = "HTTP/SOCKS4/SOCKS5 über SSH"
        "QWoTunnelAddDialog||Plain HTTP/SOCKS4/SOCKS5" = "Einfaches HTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Port Forward over SSH" = "Port-Weiterleitung über SSH"
        "QWoTunnelDialog||[" = "["
        "QWoTunnelDialog||]" = "]"
        "QWoTunnelDialog||No system proxy" = "Kein System-Proxy"
        "QWoTunnelHelpDialog||OK" = "OK"
        "WtPluginParamsDialog||Edit Plugin: %1" = "Plugin bearbeiten: %1"
        "WtPluginParamsDialog||Failed to get parameter template" = "Fehler beim Abrufen der Parameter-Vorlage"
        "WtPluginParamsDialog||Failed to load plugin library:`n%1" = "Fehler beim Laden der Plugin-Bibliothek:`n%1"
        "WtPluginParamsDialog||Internal plugin path cannot be modified" = "Interner Plugin-Pfad kann nicht geändert werden"
        "WtPluginParamsDialog||Invalid JSON format: %1" = "Ungültiges JSON-Format: %1"
        "WtPluginParamsDialog||Invalid template JSON format: %1" = "Ungültiges Vorlagen-JSON-Format: %1"
        "WtPluginParamsDialog||Load Template" = "Vorlage laden"
        "WtPluginParamsDialog||Loading template will overwrite current parameters. Continue?" = "Das Laden der Vorlage überschreibt die aktuellen Parameter. Fortfahren?"
        "WtPluginParamsDialog||Parameters (JSON):" = "Parameter (JSON):"
        "WtPluginParamsDialog||Parameters must be a JSON object" = "Parameter müssen ein JSON-Objekt sein"
        "WtPluginParamsDialog||Plugin does not support parameter template" = "Plugin unterstützt keine Parameter-Vorlage"
        "WtPluginParamsDialog||Plugin name cannot be empty" = "Plugin-Name darf nicht leer sein"
    }
    "es" = @{
        "QKxInputHistoryDialog||Current input message is empty." = "El mensaje de entrada actual está vacío."
        "QKxSessionPanel||Search sessions…" = "Buscar sesiones…"
        "QKxSessionTreeView||Delete \"%1\" and all its contents?" = "¿Eliminar \"%1\" y todo su contenido?"
        "QKxSessionTreeView||Delete Folder" = "Eliminar carpeta"
        "QKxSessionTreeView||Sessions" = "Sesiones"
        "QWoDBServerMergeModel||path" = "ruta"
        "QWoEditorWindow||Ctrl+E" = "Ctrl+E"
        "QWoEditorWindow||Ctrl+S" = "Ctrl+S"
        "QWoMainWindow||Plugin" = "Complemento"
        "QWoPluginManageDialog||Are you sure to remove plugin '%1'?" = "¿Está seguro de que desea eliminar el complemento '%1'?"
        "QWoPluginManageDialog||Author" = "Autor"
        "QWoPluginManageDialog||Confirm Remove" = "Confirmar eliminación"
        "QWoPluginManageDialog||Copy Plugin" = "Copiar complemento"
        "QWoPluginManageDialog||Description" = "Descripción"
        "QWoPluginManageDialog||Disable" = "Desactivar"
        "QWoPluginManageDialog||Disabled" = "Desactivado"
        "QWoPluginManageDialog||Enable" = "Activar"
        "QWoPluginManageDialog||Enabled" = "Activado"
        "QWoPluginManageDialog||Enter new plugin name:" = "Ingrese el nombre del nuevo complemento:"
        "QWoPluginManageDialog||Enter plugin name:" = "Ingrese el nombre del complemento:"
        "QWoPluginManageDialog||Import Plugin" = "Importar complemento"
        "QWoPluginManageDialog||Plugin files (*.dll)" = "Archivos de complemento (*.dll)"
        "QWoPluginManageDialog||Plugin Manager" = "Administrador de complementos"
        "QWoPluginManageDialog||Plugin Name" = "Nombre del complemento"
        "QWoPluginManageDialog||Version" = "Versión"
        "QWoPluginSessionAdapter||failed to upate information" = "Error al actualizar la información"
        "QWoSessionFileAssociationAddDialog||{file}" = "{file}"
        "QWoSessionFileAssociationAddDialog||Example: c:\Windows\notepad.exe {file}" = "Ejemplo: c:\Windows\notepad.exe {file}"
        "QWoSessionInternalTreeView||Add folder" = "Añadir carpeta"
        "QWoSessionInternalTreeView||Add session" = "Añadir sesión"
        "QWoSessionInternalTreeView||Continue to delete the selected items?" = "¿Continuar eliminando los elementos seleccionados?"
        "QWoSessionInternalTreeView||Deletion confirmation" = "Confirmación de eliminación"
        "QWoSessionInternalTreeView||Folder name:" = "Nombre de carpeta:"
        "QWoSessionInternalTreeView||New folder" = "Nueva carpeta"
        "QWoSessionInternalWidget||login name" = "nombre de usuario"
        "QWoSessionManage||Confirmation" = "Confirmación"
        "QWoSessionManage||New folder" = "Nueva carpeta"
        "QWoSessionManage||New session" = "Nueva sesión"
        "QWoSessionManage||No selected items to open" = "No hay elementos seleccionados para abrir"
        "QWoSessionPluginTreeView||Continue to delete the selected items?" = "¿Continuar eliminando los elementos seleccionados?"
        "QWoSessionPluginTreeView||Deletion confirmation" = "Confirmación de eliminación"
        "QWoSessionPluginTreeView||Folder name:" = "Nombre de carpeta:"
        "QWoSessionPluginTreeView||New folder" = "Nueva carpeta"
        "QWoSessionPluginWidget||login name" = "nombre de usuario"
        "QWoSessionProperty||The name can't contain characters like (/)" = "El nombre no puede contener caracteres como (/)"
        "QWoSftpTaskRunner||Mb/s" = "MB/s"
        "QWoSshTermWidget||Paste text" = "Pegar texto"
        "QWoSystemOptionDialog||Ctrl+Shift+Tab" = "Ctrl+Shift+Tab"
        "QWoSystemOptionDialog||Ctrl+Tab" = "Ctrl+Tab"
        "QWoTunnelAddDialog||HTTP/SOCKS4/SOCKS5 over SSH" = "HTTP/SOCKS4/SOCKS5 sobre SSH"
        "QWoTunnelAddDialog||Plain HTTP/SOCKS4/SOCKS5" = "HTTP/SOCKS4/SOCKS5 simple"
        "QWoTunnelAddDialog||Port Forward over SSH" = "Reenvío de puerto por SSH"
        "QWoTunnelDialog||[" = "["
        "QWoTunnelDialog||]" = "]"
        "QWoTunnelDialog||No system proxy" = "Sin proxy del sistema"
        "QWoTunnelHelpDialog||OK" = "Aceptar"
        "WtPluginParamsDialog||Edit Plugin: %1" = "Editar complemento: %1"
        "WtPluginParamsDialog||Failed to get parameter template" = "Error al obtener la plantilla de parámetros"
        "WtPluginParamsDialog||Failed to load plugin library:`n%1" = "Error al cargar la biblioteca del complemento:`n%1"
        "WtPluginParamsDialog||Internal plugin path cannot be modified" = "La ruta del complemento interno no se puede modificar"
        "WtPluginParamsDialog||Invalid JSON format: %1" = "Formato JSON no válido: %1"
        "WtPluginParamsDialog||Invalid template JSON format: %1" = "Formato JSON de plantilla no válido: %1"
        "WtPluginParamsDialog||Load Template" = "Cargar plantilla"
        "WtPluginParamsDialog||Loading template will overwrite current parameters. Continue?" = "Cargar la plantilla sobrescribirá los parámetros actuales. ¿Continuar?"
        "WtPluginParamsDialog||Parameters (JSON):" = "Parámetros (JSON):"
        "WtPluginParamsDialog||Parameters must be a JSON object" = "Los parámetros deben ser un objeto JSON"
        "WtPluginParamsDialog||Plugin does not support parameter template" = "El complemento no admite plantilla de parámetros"
        "WtPluginParamsDialog||Plugin name cannot be empty" = "El nombre del complemento no puede estar vacío"
    }
    "fr" = @{
        "QKxInputHistoryDialog||Current input message is empty." = "Le message d'entrée actuel est vide."
        "QKxSessionPanel||Search sessions…" = "Rechercher des sessions…"
        "QKxSessionTreeView||Delete \"%1\" and all its contents?" = "Supprimer \"%1\" et tout son contenu ?"
        "QKxSessionTreeView||Delete Folder" = "Supprimer le dossier"
        "QKxSessionTreeView||Sessions" = "Sessions"
        "QWoDBServerMergeModel||path" = "chemin"
        "QWoEditorWindow||Ctrl+E" = "Ctrl+E"
        "QWoEditorWindow||Ctrl+S" = "Ctrl+S"
        "QWoFtpTransferWidget||Breakpoint resume is an exclusive feature of the professional version" = "La reprise sur panne est une fonction exclusive de la version professionnelle"
        "QWoMainWindow||Plugin" = "Plugin"
        "QWoPluginManageDialog||Are you sure to remove plugin '%1'?" = "Êtes-vous sûr de vouloir supprimer le plugin '%1' ?"
        "QWoPluginManageDialog||Author" = "Auteur"
        "QWoPluginManageDialog||Confirm Remove" = "Confirmer la suppression"
        "QWoPluginManageDialog||Copy Plugin" = "Copier le plugin"
        "QWoPluginManageDialog||Description" = "Description"
        "QWoPluginManageDialog||Disable" = "Désactiver"
        "QWoPluginManageDialog||Disabled" = "Désactivé"
        "QWoPluginManageDialog||Enable" = "Activer"
        "QWoPluginManageDialog||Enabled" = "Activé"
        "QWoPluginManageDialog||Enter new plugin name:" = "Entrez le nom du nouveau plugin :"
        "QWoPluginManageDialog||Enter plugin name:" = "Entrez le nom du plugin :"
        "QWoPluginManageDialog||Import Plugin" = "Importer un plugin"
        "QWoPluginManageDialog||Plugin files (*.dll)" = "Fichiers de plugin (*.dll)"
        "QWoPluginManageDialog||Plugin Manager" = "Gestionnaire de plugins"
        "QWoPluginManageDialog||Plugin Name" = "Nom du plugin"
        "QWoPluginManageDialog||Version" = "Version"
        "QWoPluginSessionAdapter||failed to upate information" = "Échec de la mise à jour des informations"
        "QWoSessionFileAssociationAddDialog||{file}" = "{file}"
        "QWoSessionFileAssociationAddDialog||Example: c:\Windows\notepad.exe {file}" = "Exemple : c:\Windows\notepad.exe {file}"
        "QWoSessionInternalTreeView||Add folder" = "Ajouter un dossier"
        "QWoSessionInternalTreeView||Add session" = "Ajouter une session"
        "QWoSessionInternalTreeView||Continue to delete the selected items?" = "Continuer à supprimer les éléments sélectionnés ?"
        "QWoSessionInternalTreeView||Deletion confirmation" = "Confirmation de suppression"
        "QWoSessionInternalTreeView||Folder name:" = "Nom du dossier :"
        "QWoSessionInternalTreeView||New folder" = "Nouveau dossier"
        "QWoSessionInternalWidget||login name" = "nom de connexion"
        "QWoSessionManage||Confirmation" = "Confirmation"
        "QWoSessionManage||New folder" = "Nouveau dossier"
        "QWoSessionManage||New session" = "Nouvelle session"
        "QWoSessionManage||No selected items to open" = "Aucun élément sélectionné à ouvrir"
        "QWoSessionPluginTreeView||Continue to delete the selected items?" = "Continuer à supprimer les éléments sélectionnés ?"
        "QWoSessionPluginTreeView||Deletion confirmation" = "Confirmation de suppression"
        "QWoSessionPluginTreeView||Folder name:" = "Nom du dossier :"
        "QWoSessionPluginTreeView||New folder" = "Nouveau dossier"
        "QWoSessionPluginWidget||login name" = "nom de connexion"
        "QWoSessionProperty||The name can't contain characters like (/)" = "Le nom ne peut pas contenir de caractères comme (/)"
        "QWoSftpTaskRunner||Mb/s" = "Mo/s"
        "QWoSshTermWidget||Paste text" = "Coller du texte"
        "QWoSystemOptionDialog||Ctrl+Shift+Tab" = "Ctrl+Shift+Tab"
        "QWoSystemOptionDialog||Ctrl+Tab" = "Ctrl+Tab"
        "QWoTunnelAddDialog||HTTP/SOCKS4/SOCKS5 over SSH" = "HTTP/SOCKS4/SOCKS5 via SSH"
        "QWoTunnelAddDialog||Plain HTTP/SOCKS4/SOCKS5" = "HTTP/SOCKS4/SOCKS5 simple"
        "QWoTunnelAddDialog||Port Forward over SSH" = "Redirection de port via SSH"
        "QWoTunnelDialog||[" = "["
        "QWoTunnelDialog||]" = "]"
        "QWoTunnelDialog||No system proxy" = "Aucun proxy système"
        "QWoTunnelHelpDialog||OK" = "OK"
        "WtPluginParamsDialog||Edit Plugin: %1" = "Éditer le plugin : %1"
        "WtPluginParamsDialog||Failed to get parameter template" = "Échec de l'obtention du modèle de paramètres"
        "WtPluginParamsDialog||Failed to load plugin library:`n%1" = "Échec du chargement de la bibliothèque de plugin :`n%1"
        "WtPluginParamsDialog||Internal plugin path cannot be modified" = "Le chemin du plugin interne ne peut pas être modifié"
        "WtPluginParamsDialog||Invalid JSON format: %1" = "Format JSON invalide : %1"
        "WtPluginParamsDialog||Invalid template JSON format: %1" = "Format JSON du modèle invalide : %1"
        "WtPluginParamsDialog||Load Template" = "Charger le modèle"
        "WtPluginParamsDialog||Loading template will overwrite current parameters. Continue?" = "Le chargement du modèle écrasera les paramètres actuels. Continuer ?"
        "WtPluginParamsDialog||Parameters (JSON):" = "Paramètres (JSON) :"
        "WtPluginParamsDialog||Parameters must be a JSON object" = "Les paramètres doivent être un objet JSON"
        "WtPluginParamsDialog||Plugin does not support parameter template" = "Le plugin ne prend pas en charge le modèle de paramètres"
        "WtPluginParamsDialog||Plugin name cannot be empty" = "Le nom du plugin ne peut pas être vide"
    }
    "hi" = @{
        "QKxInputHistoryDialog||Current input message is empty." = "वर्तमान इनपुट संदेश खाली है।"
        "QKxSessionPanel||Search sessions…" = "सत्र खोजें…"
        "QKxSessionTreeView||Delete \"%1\" and all its contents?" = "\"%1\" और उसकी सभी सामग्री को हटाएं?"
        "QKxSessionTreeView||Delete Folder" = "फ़ोल्डर हटाएं"
        "QKxSessionTreeView||Sessions" = "सत्र"
        "QWoDBServerMergeModel||path" = "पथ"
        "QWoEditorWindow||Ctrl+E" = "Ctrl+E"
        "QWoEditorWindow||Ctrl+S" = "Ctrl+S"
        "QWoMainWindow||Plugin" = "प्लगइन"
        "QWoPluginManageDialog||Are you sure to remove plugin '%1'?" = "क्या आप वाकई प्लगइन '%1' को हटाना चाहते हैं?"
        "QWoPluginManageDialog||Author" = "लेखक"
        "QWoPluginManageDialog||Confirm Remove" = "हटाने की पुष्टि करें"
        "QWoPluginManageDialog||Copy Plugin" = "प्लगइन कॉपी करें"
        "QWoPluginManageDialog||Description" = "विवरण"
        "QWoPluginManageDialog||Disable" = "अक्षम करें"
        "QWoPluginManageDialog||Disabled" = "अक्षम"
        "QWoPluginManageDialog||Enable" = "सक्षम करें"
        "QWoPluginManageDialog||Enabled" = "सक्षम"
        "QWoPluginManageDialog||Enter new plugin name:" = "नया प्लगइन नाम दर्ज करें:"
        "QWoPluginManageDialog||Enter plugin name:" = "प्लगइन नाम दर्ज करें:"
        "QWoPluginManageDialog||Import Plugin" = "प्लगइन आयात करें"
        "QWoPluginManageDialog||Plugin files (*.dll)" = "प्लगइन फ़ाइलें (*.dll)"
        "QWoPluginManageDialog||Plugin Manager" = "प्लगइन प्रबंधक"
        "QWoPluginManageDialog||Plugin Name" = "प्लगइन नाम"
        "QWoPluginManageDialog||Version" = "संस्करण"
        "QWoPluginSessionAdapter||failed to upate information" = "जानकारी अपडेट करने में विफल"
        "QWoSessionFileAssociationAddDialog||{file}" = "{file}"
        "QWoSessionFileAssociationAddDialog||Example: c:\Windows\notepad.exe {file}" = "उदाहरण: c:\Windows\notepad.exe {file}"
        "QWoSessionInternalTreeView||Add folder" = "फ़ोल्डर जोड़ें"
        "QWoSessionInternalTreeView||Add session" = "सत्र जोड़ें"
        "QWoSessionInternalTreeView||Continue to delete the selected items?" = "चयनित आइटम हटाना जारी रखें?"
        "QWoSessionInternalTreeView||Deletion confirmation" = "हटाने की पुष्टि"
        "QWoSessionInternalTreeView||Folder name:" = "फ़ोल्डर नाम:"
        "QWoSessionInternalTreeView||New folder" = "नया फ़ोल्डर"
        "QWoSessionInternalWidget||login name" = "लॉगिन नाम"
        "QWoSessionManage||Confirmation" = "पुष्टि"
        "QWoSessionManage||New folder" = "नया फ़ोल्डर"
        "QWoSessionManage||New session" = "नया सत्र"
        "QWoSessionManage||No selected items to open" = "खोलने के लिए कोई आइटम चयनित नहीं है"
        "QWoSessionPluginTreeView||Continue to delete the selected items?" = "चयनित आइटम हटाना जारी रखें?"
        "QWoSessionPluginTreeView||Deletion confirmation" = "हटाने की पुष्टि"
        "QWoSessionPluginTreeView||Folder name:" = "फ़ोल्डर नाम:"
        "QWoSessionPluginTreeView||New folder" = "नया फ़ोल्डर"
        "QWoSessionPluginWidget||login name" = "लॉगिन नाम"
        "QWoSessionProperty||The name can't contain characters like (/)" = "नाम में (/) जैसे अक्षर नहीं हो सकते"
        "QWoSftpTaskRunner||Mb/s" = "MB/s"
        "QWoSshTermWidget||Paste text" = "पाठ चिपकाएं"
        "QWoSystemOptionDialog||Ctrl+Shift+Tab" = "Ctrl+Shift+Tab"
        "QWoSystemOptionDialog||Ctrl+Tab" = "Ctrl+Tab"
        "QWoTunnelAddDialog||HTTP/SOCKS4/SOCKS5 over SSH" = "SSH के माध्यम से HTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Plain HTTP/SOCKS4/SOCKS5" = "सादा HTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Port Forward over SSH" = "SSH पर पोर्ट फॉरवर्ड"
        "QWoTunnelDialog||[" = "["
        "QWoTunnelDialog||]" = "]"
        "QWoTunnelDialog||No system proxy" = "कोई सिस्टम प्रॉक्सी नहीं"
        "QWoTunnelHelpDialog||OK" = "ठीक है"
        "WtPluginParamsDialog||Edit Plugin: %1" = "प्लगइन संपादित करें: %1"
        "WtPluginParamsDialog||Failed to get parameter template" = "पैरामीटर टेम्पलेट प्राप्त करने में विफल"
        "WtPluginParamsDialog||Failed to load plugin library:`n%1" = "प्लगइन लाइब्रेरी लोड करने में विफल:`n%1"
        "WtPluginParamsDialog||Internal plugin path cannot be modified" = "आंतरिक प्लगइन पथ को संशोधित नहीं किया जा सकता"
        "WtPluginParamsDialog||Invalid JSON format: %1" = "अमान्य JSON प्रारूप: %1"
        "WtPluginParamsDialog||Invalid template JSON format: %1" = "अमान्य टेम्पलेट JSON प्रारूप: %1"
        "WtPluginParamsDialog||Load Template" = "टेम्पलेट लोड करें"
        "WtPluginParamsDialog||Loading template will overwrite current parameters. Continue?" = "टेम्पलेट लोड करने से वर्तमान पैरामीटर ओवरराइट हो जाएंगे। जारी रखें?"
        "WtPluginParamsDialog||Parameters (JSON):" = "पैरामीटर (JSON):"
        "WtPluginParamsDialog||Parameters must be a JSON object" = "पैरामीटर एक JSON ऑब्जेक्ट होना चाहिए"
        "WtPluginParamsDialog||Plugin does not support parameter template" = "प्लगइन पैरामीटर टेम्पलेट का समर्थन नहीं करता"
        "WtPluginParamsDialog||Plugin name cannot be empty" = "प्लगइन नाम खाली नहीं हो सकता"
    }
    "id" = @{
        "QKxInputHistoryDialog||Current input message is empty." = "Pesan input saat ini kosong."
        "QKxSessionPanel||Search sessions…" = "Cari sesi…"
        "QKxSessionTreeView||Delete \"%1\" and all its contents?" = "Hapus \"%1\" dan semua isinya?"
        "QKxSessionTreeView||Delete Folder" = "Hapus Folder"
        "QKxSessionTreeView||Sessions" = "Sesi"
        "QWoDBServerMergeModel||path" = "jalur"
        "QWoEditorWindow||Ctrl+E" = "Ctrl+E"
        "QWoEditorWindow||Ctrl+S" = "Ctrl+S"
        "QWoHostSimpleList||Ok" = "Oke"
        "QWoInternetAccessDetectionDialog||Ok" = "Oke"
        "QWoMainWindow||Plugin" = "Plugin"
        "QWoPluginManageDialog||Are you sure to remove plugin '%1'?" = "Anda yakin ingin menghapus plugin '%1'?"
        "QWoPluginManageDialog||Author" = "Penulis"
        "QWoPluginManageDialog||Confirm Remove" = "Konfirmasi Hapus"
        "QWoPluginManageDialog||Copy Plugin" = "Salin Plugin"
        "QWoPluginManageDialog||Description" = "Deskripsi"
        "QWoPluginManageDialog||Disable" = "Nonaktifkan"
        "QWoPluginManageDialog||Disabled" = "Nonaktif"
        "QWoPluginManageDialog||Enable" = "Aktifkan"
        "QWoPluginManageDialog||Enabled" = "Aktif"
        "QWoPluginManageDialog||Enter new plugin name:" = "Masukkan nama plugin baru:"
        "QWoPluginManageDialog||Enter plugin name:" = "Masukkan nama plugin:"
        "QWoPluginManageDialog||Import Plugin" = "Impor Plugin"
        "QWoPluginManageDialog||Plugin files (*.dll)" = "File plugin (*.dll)"
        "QWoPluginManageDialog||Plugin Manager" = "Manajer Plugin"
        "QWoPluginManageDialog||Plugin Name" = "Nama Plugin"
        "QWoPluginManageDialog||Version" = "Versi"
        "QWoPluginSessionAdapter||failed to upate information" = "Gagal memperbarui informasi"
        "QWoSessionFileAssociationAddDialog||{file}" = "{file}"
        "QWoSessionFileAssociationAddDialog||Example: c:\Windows\notepad.exe {file}" = "Contoh: c:\Windows\notepad.exe {file}"
        "QWoSessionInternalTreeView||Add folder" = "Tambah folder"
        "QWoSessionInternalTreeView||Add session" = "Tambah sesi"
        "QWoSessionInternalTreeView||Continue to delete the selected items?" = "Lanjutkan menghapus item yang dipilih?"
        "QWoSessionInternalTreeView||Deletion confirmation" = "Konfirmasi penghapusan"
        "QWoSessionInternalTreeView||Folder name:" = "Nama folder:"
        "QWoSessionInternalTreeView||New folder" = "Folder baru"
        "QWoSessionInternalWidget||login name" = "nama login"
        "QWoSessionManage||Confirmation" = "Konfirmasi"
        "QWoSessionManage||New folder" = "Folder baru"
        "QWoSessionManage||New session" = "Sesi baru"
        "QWoSessionManage||No selected items to open" = "Tidak ada item yang dipilih untuk dibuka"
        "QWoSessionPluginTreeView||Continue to delete the selected items?" = "Lanjutkan menghapus item yang dipilih?"
        "QWoSessionPluginTreeView||Deletion confirmation" = "Konfirmasi penghapusan"
        "QWoSessionPluginTreeView||Folder name:" = "Nama folder:"
        "QWoSessionPluginTreeView||New folder" = "Folder baru"
        "QWoSessionPluginWidget||login name" = "nama login"
        "QWoSessionProperty||The name can't contain characters like (/)" = "Nama tidak boleh mengandung karakter seperti (/)"
        "QWoSftpTaskRunner||Mb/s" = "MB/dtk"
        "QWoSshTermWidget||Paste text" = "Tempel teks"
        "QWoSystemOptionDialog||Ctrl+Shift+Tab" = "Ctrl+Shift+Tab"
        "QWoSystemOptionDialog||Ctrl+Tab" = "Ctrl+Tab"
        "QWoTunnelAddDialog||HTTP/SOCKS4/SOCKS5 over SSH" = "HTTP/SOCKS4/SOCKS5 melalui SSH"
        "QWoTunnelAddDialog||Plain HTTP/SOCKS4/SOCKS5" = "HTTP/SOCKS4/SOCKS5 biasa"
        "QWoTunnelAddDialog||Port Forward over SSH" = "Port Forward melalui SSH"
        "QWoTunnelDialog||[" = "["
        "QWoTunnelDialog||]" = "]"
        "QWoTunnelDialog||No system proxy" = "Tanpa proxy sistem"
        "QWoTunnelHelpDialog||OK" = "Oke"
        "WtPluginParamsDialog||Edit Plugin: %1" = "Edit Plugin: %1"
        "WtPluginParamsDialog||Failed to get parameter template" = "Gagal mendapatkan template parameter"
        "WtPluginParamsDialog||Failed to load plugin library:`n%1" = "Gagal memuat pustaka plugin:`n%1"
        "WtPluginParamsDialog||Internal plugin path cannot be modified" = "Jalur plugin internal tidak dapat diubah"
        "WtPluginParamsDialog||Invalid JSON format: %1" = "Format JSON tidak valid: %1"
        "WtPluginParamsDialog||Invalid template JSON format: %1" = "Format JSON template tidak valid: %1"
        "WtPluginParamsDialog||Load Template" = "Muat Template"
        "WtPluginParamsDialog||Loading template will overwrite current parameters. Continue?" = "Memuat template akan menimpa parameter saat ini. Lanjutkan?"
        "WtPluginParamsDialog||Parameters (JSON):" = "Parameter (JSON):"
        "WtPluginParamsDialog||Parameters must be a JSON object" = "Parameter harus berupa objek JSON"
        "WtPluginParamsDialog||Plugin does not support parameter template" = "Plugin tidak mendukung template parameter"
        "WtPluginParamsDialog||Plugin name cannot be empty" = "Nama plugin tidak boleh kosong"
    }
    "ja" = @{
        "QKxInputHistoryDialog||Current input message is empty." = "現在の入力メッセージは空です。"
        "QKxSessionPanel||Search sessions…" = "セッションを検索…"
        "QKxSessionTreeView||Delete \"%1\" and all its contents?" = "\"%1\" とそのすべての内容を削除しますか？"
        "QKxSessionTreeView||Delete Folder" = "フォルダを削除"
        "QKxSessionTreeView||Sessions" = "セッション"
        "QWoDBServerMergeModel||path" = "パス"
        "QWoEditorWindow||Ctrl+E" = "Ctrl+E"
        "QWoEditorWindow||Ctrl+S" = "Ctrl+S"
        "QWoMainWindow||Plugin" = "プラグイン"
        "QWoPluginManageDialog||Are you sure to remove plugin '%1'?" = "プラグイン '%1' を削除してもよろしいですか？"
        "QWoPluginManageDialog||Author" = "作者"
        "QWoPluginManageDialog||Confirm Remove" = "削除の確認"
        "QWoPluginManageDialog||Copy Plugin" = "プラグインをコピー"
        "QWoPluginManageDialog||Description" = "説明"
        "QWoPluginManageDialog||Disable" = "無効にする"
        "QWoPluginManageDialog||Disabled" = "無効"
        "QWoPluginManageDialog||Enable" = "有効にする"
        "QWoPluginManageDialog||Enabled" = "有効"
        "QWoPluginManageDialog||Enter new plugin name:" = "新しいプラグイン名を入力："
        "QWoPluginManageDialog||Enter plugin name:" = "プラグイン名を入力："
        "QWoPluginManageDialog||Import Plugin" = "プラグインをインポート"
        "QWoPluginManageDialog||Plugin files (*.dll)" = "プラグインファイル (*.dll)"
        "QWoPluginManageDialog||Plugin Manager" = "プラグインマネージャー"
        "QWoPluginManageDialog||Plugin Name" = "プラグイン名"
        "QWoPluginManageDialog||Version" = "バージョン"
        "QWoPluginSessionAdapter||failed to upate information" = "情報の更新に失敗しました"
        "QWoSessionFileAssociationAddDialog||{file}" = "{file}"
        "QWoSessionFileAssociationAddDialog||Example: c:\Windows\notepad.exe {file}" = "例：c:\Windows\notepad.exe {file}"
        "QWoSessionInternalTreeView||Add folder" = "フォルダを追加"
        "QWoSessionInternalTreeView||Add session" = "セッションを追加"
        "QWoSessionInternalTreeView||Continue to delete the selected items?" = "選択した項目を削除し続けますか？"
        "QWoSessionInternalTreeView||Deletion confirmation" = "削除の確認"
        "QWoSessionInternalTreeView||Folder name:" = "フォルダ名："
        "QWoSessionInternalTreeView||New folder" = "新しいフォルダ"
        "QWoSessionInternalWidget||login name" = "ログイン名"
        "QWoSessionManage||Confirmation" = "確認"
        "QWoSessionManage||New folder" = "新しいフォルダ"
        "QWoSessionManage||New session" = "新しいセッション"
        "QWoSessionManage||No selected items to open" = "開く項目が選択されていません"
        "QWoSessionPluginTreeView||Continue to delete the selected items?" = "選択した項目を削除し続けますか？"
        "QWoSessionPluginTreeView||Deletion confirmation" = "削除の確認"
        "QWoSessionPluginTreeView||Folder name:" = "フォルダ名："
        "QWoSessionPluginTreeView||New folder" = "新しいフォルダ"
        "QWoSessionPluginWidget||login name" = "ログイン名"
        "QWoSessionProperty||The name can't contain characters like (/)" = "名前に (/) のような文字を含めることはできません"
        "QWoSftpTaskRunner||Mb/s" = "MB/秒"
        "QWoSshTermWidget||Paste text" = "テキストを貼り付け"
        "QWoSystemOptionDialog||Ctrl+Shift+Tab" = "Ctrl+Shift+Tab"
        "QWoSystemOptionDialog||Ctrl+Tab" = "Ctrl+Tab"
        "QWoTunnelAddDialog||HTTP/SOCKS4/SOCKS5 over SSH" = "SSH経由のHTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Plain HTTP/SOCKS4/SOCKS5" = "通常のHTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Port Forward over SSH" = "SSHポートフォワード"
        "QWoTunnelDialog||[" = "["
        "QWoTunnelDialog||]" = "]"
        "QWoTunnelDialog||No system proxy" = "システムプロキシなし"
        "QWoTunnelHelpDialog||OK" = "OK"
        "WtPluginParamsDialog||Edit Plugin: %1" = "プラグインの編集：%1"
        "WtPluginParamsDialog||Failed to get parameter template" = "パラメータテンプレートの取得に失敗しました"
        "WtPluginParamsDialog||Failed to load plugin library:`n%1" = "プラグインライブラリの読み込みに失敗しました：`n%1"
        "WtPluginParamsDialog||Internal plugin path cannot be modified" = "内部プラグインパスは変更できません"
        "WtPluginParamsDialog||Invalid JSON format: %1" = "無効なJSON形式：%1"
        "WtPluginParamsDialog||Invalid template JSON format: %1" = "無効なテンプレートJSON形式：%1"
        "WtPluginParamsDialog||Load Template" = "テンプレートを読み込み"
        "WtPluginParamsDialog||Loading template will overwrite current parameters. Continue?" = "テンプレートを読み込むと現在のパラメータが上書きされます。続行しますか？"
        "WtPluginParamsDialog||Parameters (JSON):" = "パラメータ (JSON)："
        "WtPluginParamsDialog||Parameters must be a JSON object" = "パラメータはJSONオブジェクトである必要があります"
        "WtPluginParamsDialog||Plugin does not support parameter template" = "プラグインはパラメータテンプレートをサポートしていません"
        "WtPluginParamsDialog||Plugin name cannot be empty" = "プラグイン名は空にできません"
    }
    "ko" = @{
        "QKxInputHistoryDialog||Dialog" = "대화 상자"
        "QKxInputHistoryDialog||Current input message is empty." = "현재 입력 메시지가 비어 있습니다."
        "QKxItemFilterDialog||Dialog" = "대화 상자"
        "QKxSessionPanel||Search sessions…" = "세션 검색…"
        "QKxSessionTreeView||Delete \"%1\" and all its contents?" = "\"%1\" 및 모든 내용을 삭제하시겠습니까?"
        "QKxSessionTreeView||Delete Folder" = "폴더 삭제"
        "QKxSessionTreeView||Sessions" = "세션"
        "QWoDBServerMergeModel||path" = "경로"
        "QWoEditorWindow||Ctrl+E" = "Ctrl+E"
        "QWoEditorWindow||Ctrl+S" = "Ctrl+S"
        "QWoHistoryWidget||Form" = "양식"
        "QWoHostSimpleList||Dialog" = "대화 상자"
        "QWoInternetAccessDetectionDialog||Dialog" = "대화 상자"
        "QWoMainWindow||Plugin" = "플러그인"
        "QWoPluginManageDialog||Dialog" = "대화 상자"
        "QWoPluginManageDialog||Are you sure to remove plugin '%1'?" = "플러그인 '%1'을(를) 제거하시겠습니까?"
        "QWoPluginManageDialog||Author" = "작성자"
        "QWoPluginManageDialog||Confirm Remove" = "제거 확인"
        "QWoPluginManageDialog||Copy Plugin" = "플러그인 복사"
        "QWoPluginManageDialog||Description" = "설명"
        "QWoPluginManageDialog||Disable" = "비활성화"
        "QWoPluginManageDialog||Disabled" = "비활성화됨"
        "QWoPluginManageDialog||Enable" = "활성화"
        "QWoPluginManageDialog||Enabled" = "활성화됨"
        "QWoPluginManageDialog||Enter new plugin name:" = "새 플러그인 이름 입력:"
        "QWoPluginManageDialog||Enter plugin name:" = "플러그인 이름 입력:"
        "QWoPluginManageDialog||Import Plugin" = "플러그인 가져오기"
        "QWoPluginManageDialog||Plugin files (*.dll)" = "플러그인 파일 (*.dll)"
        "QWoPluginManageDialog||Plugin Manager" = "플러그인 관리자"
        "QWoPluginManageDialog||Plugin Name" = "플러그인 이름"
        "QWoPluginManageDialog||Version" = "버전"
        "QWoPluginSessionAdapter||failed to upate information" = "정보 업데이트에 실패했습니다"
        "QWoSessionFileAssociationAddDialog||{file}" = "{file}"
        "QWoSessionFileAssociationAddDialog||Example: c:\Windows\notepad.exe {file}" = "예: c:\Windows\notepad.exe {file}"
        "QWoSessionInternalTreeView||Add folder" = "폴더 추가"
        "QWoSessionInternalTreeView||Add session" = "세션 추가"
        "QWoSessionInternalTreeView||Continue to delete the selected items?" = "선택한 항목을 계속 삭제하시겠습니까?"
        "QWoSessionInternalTreeView||Deletion confirmation" = "삭제 확인"
        "QWoSessionInternalTreeView||Folder name:" = "폴더 이름:"
        "QWoSessionInternalTreeView||New folder" = "새 폴더"
        "QWoSessionInternalWidget||Enter keyword to search" = "검색할 키워드 입력"
        "QWoSessionInternalWidget||Form" = "양식"
        "QWoSessionInternalWidget||login name" = "로그인 이름"
        "QWoSessionManage||Confirmation" = "확인"
        "QWoSessionManage||New folder" = "새 폴더"
        "QWoSessionManage||New session" = "새 세션"
        "QWoSessionManage||No selected items to open" = "열 항목이 선택되지 않았습니다"
        "QWoSessionPluginTreeView||Continue to delete the selected items?" = "선택한 항목을 계속 삭제하시겠습니까?"
        "QWoSessionPluginTreeView||Deletion confirmation" = "삭제 확인"
        "QWoSessionPluginTreeView||Folder name:" = "폴더 이름:"
        "QWoSessionPluginTreeView||New folder" = "새 폴더"
        "QWoSessionPluginWidget||Enter keyword to search" = "검색할 키워드 입력"
        "QWoSessionPluginWidget||Form" = "양식"
        "QWoSessionPluginWidget||login name" = "로그인 이름"
        "QWoSessionProperty||The name can't contain characters like (/)" = "이름에 (/)와 같은 문자를 포함할 수 없습니다"
        "QWoSftpTaskRunner||Form" = "양식"
        "QWoSftpTaskRunner||Mb/s" = "MB/s"
        "QWoSSHChartWidget||Form" = "양식"
        "QWoSshMonitorWidget||Form" = "양식"
        "QWoSshTermWidget||Paste text" = "텍스트 붙여넣기"
        "QWoSystemOptionDialog||Ctrl+Shift+Tab" = "Ctrl+Shift+Tab"
        "QWoSystemOptionDialog||Ctrl+Tab" = "Ctrl+Tab"
        "QWoTunnelAddDialog||HTTP/SOCKS4/SOCKS5 over SSH" = "SSH를 통한 HTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Plain HTTP/SOCKS4/SOCKS5" = "일반 HTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Port Forward over SSH" = "SSH 포트 포워드"
        "QWoTunnelDialog||[" = "["
        "QWoTunnelDialog||]" = "]"
        "QWoTunnelDialog||No system proxy" = "시스템 프록시 없음"
        "QWoTunnelHelpDialog||Dialog" = "대화 상자"
        "QWoTunnelHelpDialog||OK" = "확인"
        "WtPluginParamsDialog||Edit Plugin: %1" = "플러그인 편집: %1"
        "WtPluginParamsDialog||Failed to get parameter template" = "매개변수 템플릿 가져오기 실패"
        "WtPluginParamsDialog||Failed to load plugin library:`n%1" = "플러그인 라이브러리 로드 실패:`n%1"
        "WtPluginParamsDialog||Internal plugin path cannot be modified" = "내부 플러그인 경로는 수정할 수 없습니다"
        "WtPluginParamsDialog||Invalid JSON format: %1" = "잘못된 JSON 형식: %1"
        "WtPluginParamsDialog||Invalid template JSON format: %1" = "잘못된 템플릿 JSON 형식: %1"
        "WtPluginParamsDialog||Load Template" = "템플릿 로드"
        "WtPluginParamsDialog||Loading template will overwrite current parameters. Continue?" = "템플릿을 로드하면 현재 매개변수가 덮어씌워집니다. 계속하시겠습니까?"
        "WtPluginParamsDialog||Parameters (JSON):" = "매개변수 (JSON):"
        "WtPluginParamsDialog||Parameters must be a JSON object" = "매개변수는 JSON 객체여야 합니다"
        "WtPluginParamsDialog||Plugin does not support parameter template" = "플러그인은 매개변수 템플릿을 지원하지 않습니다"
        "WtPluginParamsDialog||Plugin name cannot be empty" = "플러그인 이름은 비워둘 수 없습니다"
    }
    "ru" = @{
        "QKxInputHistoryDialog||Current input message is empty." = "Текущее входное сообщение пусто."
        "QKxSessionPanel||Search sessions…" = "Поиск сессий…"
        "QKxSessionTreeView||Delete \"%1\" and all its contents?" = "Удалить \"%1\" и всё его содержимое?"
        "QKxSessionTreeView||Delete Folder" = "Удалить папку"
        "QKxSessionTreeView||Sessions" = "Сессии"
        "QWoDBServerMergeModel||path" = "путь"
        "QWoEditorWindow||Ctrl+E" = "Ctrl+E"
        "QWoEditorWindow||Ctrl+S" = "Ctrl+S"
        "QWoHostSimpleList||Ok" = "ОК"
        "QWoInternetAccessDetectionDialog||Ok" = "ОК"
        "QWoMainWindow||Plugin" = "Плагин"
        "QWoPluginManageDialog||Are you sure to remove plugin '%1'?" = "Вы уверены, что хотите удалить плагин '%1'?"
        "QWoPluginManageDialog||Author" = "Автор"
        "QWoPluginManageDialog||Confirm Remove" = "Подтвердить удаление"
        "QWoPluginManageDialog||Copy Plugin" = "Копировать плагин"
        "QWoPluginManageDialog||Description" = "Описание"
        "QWoPluginManageDialog||Disable" = "Отключить"
        "QWoPluginManageDialog||Disabled" = "Отключено"
        "QWoPluginManageDialog||Enable" = "Включить"
        "QWoPluginManageDialog||Enabled" = "Включено"
        "QWoPluginManageDialog||Enter new plugin name:" = "Введите имя нового плагина:"
        "QWoPluginManageDialog||Enter plugin name:" = "Введите имя плагина:"
        "QWoPluginManageDialog||Import Plugin" = "Импортировать плагин"
        "QWoPluginManageDialog||Plugin files (*.dll)" = "Файлы плагинов (*.dll)"
        "QWoPluginManageDialog||Plugin Manager" = "Менеджер плагинов"
        "QWoPluginManageDialog||Plugin Name" = "Имя плагина"
        "QWoPluginManageDialog||Version" = "Версия"
        "QWoPluginSessionAdapter||failed to upate information" = "Не удалось обновить информацию"
        "QWoSessionFileAssociationAddDialog||{file}" = "{file}"
        "QWoSessionFileAssociationAddDialog||Example: c:\Windows\notepad.exe {file}" = "Пример: c:\Windows\notepad.exe {file}"
        "QWoSessionInternalTreeView||Add folder" = "Добавить папку"
        "QWoSessionInternalTreeView||Add session" = "Добавить сессию"
        "QWoSessionInternalTreeView||Continue to delete the selected items?" = "Продолжить удаление выбранных элементов?"
        "QWoSessionInternalTreeView||Deletion confirmation" = "Подтверждение удаления"
        "QWoSessionInternalTreeView||Folder name:" = "Имя папки:"
        "QWoSessionInternalTreeView||New folder" = "Новая папка"
        "QWoSessionInternalWidget||login name" = "имя входа"
        "QWoSessionManage||Confirmation" = "Подтверждение"
        "QWoSessionManage||New folder" = "Новая папка"
        "QWoSessionManage||New session" = "Новая сессия"
        "QWoSessionManage||No selected items to open" = "Нет выбранных элементов для открытия"
        "QWoSessionPluginTreeView||Continue to delete the selected items?" = "Продолжить удаление выбранных элементов?"
        "QWoSessionPluginTreeView||Deletion confirmation" = "Подтверждение удаления"
        "QWoSessionPluginTreeView||Folder name:" = "Имя папки:"
        "QWoSessionPluginTreeView||New folder" = "Новая папка"
        "QWoSessionPluginWidget||login name" = "имя входа"
        "QWoSessionProperty||The name can't contain characters like (/)" = "Имя не может содержать символы, такие as (/)"
        "QWoSftpTaskRunner||Mb/s" = "МБ/с"
        "QWoSshTermWidget||Paste text" = "Вставить текст"
        "QWoSystemOptionDialog||Ctrl+Shift+Tab" = "Ctrl+Shift+Tab"
        "QWoSystemOptionDialog||Ctrl+Tab" = "Ctrl+Tab"
        "QWoTunnelAddDialog||HTTP/SOCKS4/SOCKS5 over SSH" = "HTTP/SOCKS4/SOCKS5 через SSH"
        "QWoTunnelAddDialog||Plain HTTP/SOCKS4/SOCKS5" = "Простой HTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Port Forward over SSH" = "Перенаправление портов через SSH"
        "QWoTunnelDialog||[" = "["
        "QWoTunnelDialog||]" = "]"
        "QWoTunnelDialog||No system proxy" = "Нет системного прокси"
        "QWoTunnelHelpDialog||OK" = "ОК"
        "WtPluginParamsDialog||Edit Plugin: %1" = "Редактировать плагин: %1"
        "WtPluginParamsDialog||Failed to get parameter template" = "Не удалось получить шаблон параметров"
        "WtPluginParamsDialog||Failed to load plugin library:`n%1" = "Не удалось загрузить библиотеку плагина:`n%1"
        "WtPluginParamsDialog||Internal plugin path cannot be modified" = "Внутренний путь плагина нельзя изменить"
        "WtPluginParamsDialog||Invalid JSON format: %1" = "Неверный формат JSON: %1"
        "WtPluginParamsDialog||Invalid template JSON format: %1" = "Неверный формат JSON шаблона: %1"
        "WtPluginParamsDialog||Load Template" = "Загрузить шаблон"
        "WtPluginParamsDialog||Loading template will overwrite current parameters. Continue?" = "Загрузка шаблона перезапишет текущие параметры. Продолжить?"
        "WtPluginParamsDialog||Parameters (JSON):" = "Параметры (JSON):"
        "WtPluginParamsDialog||Parameters must be a JSON object" = "Параметры должны быть JSON-объектом"
        "WtPluginParamsDialog||Plugin does not support parameter template" = "Плагин не поддерживает шаблон параметров"
        "WtPluginParamsDialog||Plugin name cannot be empty" = "Имя плагина не может быть пустым"
    }
    "zh_TW" = @{
        "QKxInputHistoryDialog||Current input message is empty." = "目前輸入訊息為空。"
        "QKxSessionPanel||Search sessions…" = "搜尋作業階段…"
        "QKxSessionTreeView||Delete \"%1\" and all its contents?" = "刪除 \"%1\" 及其所有內容？"
        "QKxSessionTreeView||Delete Folder" = "刪除資料夾"
        "QKxSessionTreeView||Sessions" = "作業階段"
        "QWoDBServerMergeModel||path" = "路徑"
        "QWoEditorWindow||Ctrl+E" = "Ctrl+E"
        "QWoEditorWindow||Ctrl+S" = "Ctrl+S"
        "QWoMainWindow||Plugin" = "外掛程式"
        "QWoPluginManageDialog||Are you sure to remove plugin '%1'?" = "確定要移除外掛程式 '%1' 嗎？"
        "QWoPluginManageDialog||Author" = "作者"
        "QWoPluginManageDialog||Confirm Remove" = "確認移除"
        "QWoPluginManageDialog||Copy Plugin" = "複製外掛程式"
        "QWoPluginManageDialog||Description" = "描述"
        "QWoPluginManageDialog||Disable" = "停用"
        "QWoPluginManageDialog||Disabled" = "已停用"
        "QWoPluginManageDialog||Enable" = "啟用"
        "QWoPluginManageDialog||Enabled" = "已啟用"
        "QWoPluginManageDialog||Enter new plugin name:" = "輸入新的外掛程式名稱："
        "QWoPluginManageDialog||Enter plugin name:" = "輸入外掛程式名稱："
        "QWoPluginManageDialog||Import Plugin" = "匯入外掛程式"
        "QWoPluginManageDialog||Plugin files (*.dll)" = "外掛程式檔案 (*.dll)"
        "QWoPluginManageDialog||Plugin Manager" = "外掛程式管理員"
        "QWoPluginManageDialog||Plugin Name" = "外掛程式名稱"
        "QWoPluginManageDialog||Version" = "版本"
        "QWoPluginSessionAdapter||failed to upate information" = "更新資訊失敗"
        "QWoSessionFileAssociationAddDialog||{file}" = "{file}"
        "QWoSessionFileAssociationAddDialog||Example: c:\Windows\notepad.exe {file}" = "範例：c:\Windows\notepad.exe {file}"
        "QWoSessionInternalTreeView||Add folder" = "新增資料夾"
        "QWoSessionInternalTreeView||Add session" = "新增作業階段"
        "QWoSessionInternalTreeView||Continue to delete the selected items?" = "繼續刪除選取的項目？"
        "QWoSessionInternalTreeView||Deletion confirmation" = "刪除確認"
        "QWoSessionInternalTreeView||Folder name:" = "資料夾名稱："
        "QWoSessionInternalTreeView||New folder" = "新資料夾"
        "QWoSessionInternalWidget||login name" = "登入名稱"
        "QWoSessionManage||Confirmation" = "確認"
        "QWoSessionManage||New folder" = "新資料夾"
        "QWoSessionManage||New session" = "新作業階段"
        "QWoSessionManage||No selected items to open" = "沒有選取的項目可開啟"
        "QWoSessionPluginTreeView||Continue to delete the selected items?" = "繼續刪除選取的項目？"
        "QWoSessionPluginTreeView||Deletion confirmation" = "刪除確認"
        "QWoSessionPluginTreeView||Folder name:" = "資料夾名稱："
        "QWoSessionPluginTreeView||New folder" = "新資料夾"
        "QWoSessionPluginWidget||login name" = "登入名稱"
        "QWoSessionProperty||The name can't contain characters like (/)" = "名稱不能包含 (/) 等字元"
        "QWoSftpTaskRunner||Mb/s" = "MB/秒"
        "QWoSshTermWidget||Paste text" = "貼上文字"
        "QWoSystemOptionDialog||Ctrl+Shift+Tab" = "Ctrl+Shift+Tab"
        "QWoSystemOptionDialog||Ctrl+Tab" = "Ctrl+Tab"
        "QWoTunnelAddDialog||HTTP/SOCKS4/SOCKS5 over SSH" = "透過SSH的HTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Plain HTTP/SOCKS4/SOCKS5" = "一般HTTP/SOCKS4/SOCKS5"
        "QWoTunnelAddDialog||Port Forward over SSH" = "SSH連接埠轉送"
        "QWoTunnelDialog||[" = "["
        "QWoTunnelDialog||]" = "]"
        "QWoTunnelDialog||No system proxy" = "無系統Proxy"
        "QWoTunnelHelpDialog||OK" = "確定"
        "WtPluginParamsDialog||Edit Plugin: %1" = "編輯外掛程式：%1"
        "WtPluginParamsDialog||Failed to get parameter template" = "取得參數範本失敗"
        "WtPluginParamsDialog||Failed to load plugin library:`n%1" = "載入外掛程式庫失敗：`n%1"
        "WtPluginParamsDialog||Internal plugin path cannot be modified" = "內部外掛程式路徑無法修改"
        "WtPluginParamsDialog||Invalid JSON format: %1" = "無效的JSON格式：%1"
        "WtPluginParamsDialog||Invalid template JSON format: %1" = "無效的範本JSON格式：%1"
        "WtPluginParamsDialog||Load Template" = "載入範本"
        "WtPluginParamsDialog||Loading template will overwrite current parameters. Continue?" = "載入範本將覆蓋目前的參數，是否繼續？"
        "WtPluginParamsDialog||Parameters (JSON):" = "參數 (JSON)："
        "WtPluginParamsDialog||Parameters must be a JSON object" = "參數必須是JSON物件"
        "WtPluginParamsDialog||Plugin does not support parameter template" = "外掛程式不支援參數範本"
        "WtPluginParamsDialog||Plugin name cannot be empty" = "外掛程式名稱不能是空的"
    }
}

function Get-TranslationText {
    param($transNode)
    if ($null -eq $transNode) { return $null }
    if ($transNode -is [string]) {
        if ([string]::IsNullOrWhiteSpace($transNode)) { return $null }
        return $transNode
    }
    if ($transNode.InnerText -and -not [string]::IsNullOrWhiteSpace($transNode.InnerText)) {
        return $transNode.InnerText
    }
    if ($transNode.'#text' -and -not [string]::IsNullOrWhiteSpace($transNode.'#text')) {
        return $transNode.'#text'
    }
    return $null
}

Write-Host "Applying translations..." -ForegroundColor Cyan

foreach ($lang in $langFiles.Keys) {
    $fileName = $langFiles[$lang]
    $filePath = Join-Path $tsDir $fileName
    
    Write-Host "Processing $fileName..." -ForegroundColor Yellow
    
    $xml = [xml](Get-Content $filePath -Encoding UTF8)
    $updated = 0
    
    $transDict = $otherLangTranslations[$lang]
    if ($lang -eq "zh_CN") {
        $transDict = $translations["zh_CN"]
    }
    
    if (-not $transDict) {
        Write-Host "  No translation data for $lang" -ForegroundColor Red
        continue
    }
    
    foreach ($ctx in $xml.TS.context) {
        $ctxName = $ctx.name
        foreach ($msg in $ctx.message) {
            $src = $msg.source
            $key = "$ctxName||$src"
            
            $currentTrans = Get-TranslationText $msg.translation
            if ($null -ne $currentTrans) { continue }
            
            if ($transDict.ContainsKey($key)) {
                $newValue = $transDict[$key]
                $msg.translation.InnerText = $newValue
                if ($msg.translation.type -eq "unfinished") {
                    $msg.translation.RemoveAttribute("type")
                }
                $updated++
            }
        }
    }
    
    if ($updated -gt 0) {
        $xml.Save($filePath)
        Write-Host "  Updated $updated translations" -ForegroundColor Green
    } else {
        Write-Host "  No updates needed" -ForegroundColor Gray
    }
}

Write-Host ""
Write-Host "Done!" -ForegroundColor Cyan
