From 681870dd79645b40895f90e5da82841f14b3d829 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yakut=20=C3=96ZCAN?= Date: Wed, 7 Jul 2021 22:04:28 +0300 Subject: [PATCH] add Turkish language support --- src/lang/about.ts | 12 +++++ src/lang/common.ts | 30 +++++++++++ src/lang/connections.ts | 100 +++++++++++++++++++++++++++++++++++ src/lang/index.ts | 6 ++- src/lang/log.ts | 1 + src/lang/script.ts | 12 +++++ src/lang/settings.ts | 17 ++++++ src/types/global.d.ts | 2 +- src/types/locale.d.ts | 3 +- src/views/settings/index.vue | 1 + 10 files changed, 180 insertions(+), 4 deletions(-) diff --git a/src/lang/about.ts b/src/lang/about.ts index e993983d4..4538076ef 100644 --- a/src/lang/about.ts +++ b/src/lang/about.ts @@ -3,36 +3,43 @@ export default { zh: '关于', en: 'About', ja: 'MQTTXについて', + tr: 'Hakkında', }, update: { zh: '检查更新', en: 'Check for Updates', + tr: 'Güncellemeleri kontrol et', ja: 'バージョンチェック', }, web: { zh: '官方网站', en: 'Website', + tr: 'Website', ja: '公式サイト', }, support: { zh: '支持', en: 'Support', + tr: 'Destek', ja: 'サポート', }, releases: { zh: '更新日志', en: 'Releases', + tr: 'Sürümler', ja: 'リリース履歴', }, followGithub: { zh: '在 GitHub 上关注我们', en: 'Follow us on GitHub', + tr: "Bizi GitHub'da takip edin", ja: 'Githubでフォローする', }, emqxDesc: { zh: '一款完全开源,高可用低时延的百万级分布式物联网 MQTT 5.0 消息服务器。', // tslint:disable-next-line:max-line-length en: 'is a fully open source, highly scalable, highly available distributed MQTT 5.0 messaging broker for IoT, M2M and mobile applications.', + tr: 'IoT, M2M ve mobil uygulamalar için tamamen açık kaynaklı, yüksek düzeyde ölçeklenebilir, yüksek düzeyde kullanılabilir dağıtılmış MQTT 5.0 mesajlaşma aracısıdır.', ja: 'は完全なオープンソース、高可用性、低レイテンシのミリオンレベルの分散型IoT MQTT 5.0メッセージサーバです。', }, emqxLocal: { @@ -44,6 +51,10 @@ export default { emqx: 'EMQ X', local: 'To run MQTT Broker locally, {0} is recommended. ', }, + tr: { + emqx: 'EMQ X', + local: "MQTT Broker'ı yerel olarak çalıştırmak için {0} önerilir.", + }, ja: { emqx: 'EMQ X', local: 'ローカルでMQTT Brokerを動作させたい場合に、{0}がお勧めです。', @@ -52,6 +63,7 @@ export default { emqxDocker: { zh: '使用 Docker 安装 EMQ X:', en: 'Install EMQ X by using Docker:', + tr: "Docker'ı kullanarak EMQ X'i yükleyin:", ja: 'DockerでEMQ Xをインストール', }, } diff --git a/src/lang/common.ts b/src/lang/common.ts index bea66b118..90990eaa8 100644 --- a/src/lang/common.ts +++ b/src/lang/common.ts @@ -2,151 +2,181 @@ export default { cancel: { zh: '取消', en: 'Cancel', + tr: 'İptal', ja: 'キャンセル', }, confirm: { zh: '确定', en: 'Confirm', + tr: 'Onayla', ja: '確認', }, inputRequired: { zh: '请输入', en: 'Please input', + tr: 'Lütfen girin', ja: '入力してください', }, selectRequired: { zh: '请选择', en: 'Please select', + tr: 'Lütfen seçin', ja: '選択してください', }, back: { zh: '返回', en: 'Back', + tr: 'Geri', ja: '戻る', }, save: { zh: '保 存', en: 'Save', + tr: 'Kaydet', ja: '保存', }, noData: { zh: '暂无数据', en: 'No Data', + tr: 'Veri yok', ja: 'データなし', }, createSuccess: { zh: '创建成功', en: 'Create Success', + tr: 'Kayıt Edildi', ja: '新規に成功しました', }, createfailed: { zh: '创建失败', en: 'Create Failed', + tr: 'Kayıt Edilemedi', ja: '新規に失敗しました', }, editSuccess: { zh: '编辑成功', en: 'Edit Success', + tr: 'Düzenlendi', ja: '更新に成功しました', }, editfailed: { zh: '编辑失败', en: 'Edit Failed', + tr: 'Düzenlenemedi', ja: '更新に失敗しました', }, deleteSuccess: { zh: '删除成功', en: 'Delete Success', + tr: 'Silindi', ja: '削除に成功しました', }, deletefailed: { zh: '删除失败', en: 'Delete Failed', + tr: 'Silinemedi', ja: '削除に失敗しました', }, warning: { zh: '提示', en: 'Warning', + tr: 'Uyarı', ja: 'ワーニング', }, confirmDelete: { zh: '此操作将删除 {name},是否继续?', en: 'This will delete {name}, continue?', + tr: '{name} silinecek, devam edilsin mi?', ja: '該当操作は{name}を削除してもよろしいですか?', }, new: { zh: '新 建', en: 'New', + tr: 'Yeni', ja: '新 規', }, delete: { zh: '删 除', en: 'Delete', + tr: 'Sil', ja: '削 除', }, edit: { zh: '编 辑', en: 'Edit', + tr: 'Düzenle', ja: '編 集', }, unitS: { zh: '秒', en: 's', + tr: 's', ja: '秒', }, unitMS: { zh: '毫秒', en: 'ms', + tr: 'ms', ja: 'ミリ秒', }, config: { zh: '高级配置', en: 'Advanced Config', + tr: 'Gelişmiş Ayarlar', ja: '詳細設定', }, copy: { zh: '复 制', en: 'Copy', + tr: 'Kopyala', ja: 'コピー', }, copySuccess: { zh: '复制成功', en: 'Copy Success', + tr: 'Kopyalandı', ja: 'コピーが成功しました', }, copyFailed: { zh: '复制失败', en: 'Copy Failed', + tr: 'Kopyalanamadı', ja: 'コピーが失敗しました', }, exportSuccess: { zh: '导出成功', en: 'exported successfully', + tr: 'başarıyla dışa aktarıldı', ja: 'のエクスポートが成功しました', }, importSuccess: { zh: '导入成功', en: 'Imported successfully', + tr: 'Başarıyla içe aktarıldı', ja: 'インポートが成功しました', }, newWindow: { zh: '新建窗口', en: 'New window', + tr: 'Yeni pencere', ja: '新しいウィンドウ', }, version: { zh: '版本:', en: 'Version: ', + tr: 'Versiyon: ', ja: 'システムバージョン:', }, uptime: { zh: '运行时间', en: 'Uptime', + tr: 'Çalışma süresi', ja: '稼働時間', }, cloud: { zh: '需要一个云原生的全托管 MQTT 服务?一键部署 EMQ X Cloud', en: 'Need a Cloud-Native fully-managed MQTT broker? Try EMQ X Cloud now!', + tr: 'Cloud-Native, tam olarak yönetilen bir MQTT aracısına mı ihtiyacınız var? Deneyin EMQ X Cloud şimdi!', ja: 'Need a Cloud-Native fully-managed MQTT broker? Try EMQ X Cloud now!', }, } diff --git a/src/lang/connections.ts b/src/lang/connections.ts index d322e01a5..db36cc0ba 100644 --- a/src/lang/connections.ts +++ b/src/lang/connections.ts @@ -2,366 +2,439 @@ export default { connections: { zh: '连接', en: 'Connections', + tr: 'Bağlantılar', ja: '接続', }, newConnections: { zh: '新建连接', en: 'New Connection', + tr: 'Yeni bağlantı', ja: '新しい接続', }, search: { zh: '搜索', en: 'Search', + tr: 'Ara', ja: '検索', }, topicCopied: { zh: '复制成功!', en: 'Topic copied!', + tr: 'Konu kopyalandı!', ja: 'コピーが成功しました', }, clearHistory: { zh: '清除历史记录', en: 'Clear History', + tr: 'Geçmişi Temizle', ja: '履歴データの削除', }, notConnect: { zh: '客户端未连接', en: 'Client not connected', + tr: 'İstemci bağlı değil', ja: 'クライアントが接続されていません', }, disconnect: { zh: '断开连接', en: 'Disconnect', + tr: 'Bağlantıyı kes', ja: '切 断', }, disconnected: { zh: '已断开连接', en: 'Disconnected', + tr: 'Bağlantı kesildi', ja: '接続を切断しました', }, deleteConnect: { zh: '删除连接', en: 'Delete Connection', + tr: 'Bağlantıyı Sil', ja: '削除', }, all: { zh: '全部', en: 'All', + tr: 'Hepsi', ja: '全て', }, received: { zh: '已接收', en: 'Received', + tr: 'Alınan', ja: '受信済み', }, published: { zh: '已发送', en: 'Published', + tr: 'Yayınlanan', ja: '送信済み', }, writeMsg: { zh: '请输入消息', en: 'Write a message', + tr: 'Bir mesaj yaz', ja: 'メッセージを入力してください', }, subscriptions: { zh: '订阅列表', en: 'Subscriptions', + tr: 'Abonelikler', ja: 'サブスクリプションリスト', }, subscription: { zh: '订阅', en: 'subscription', + tr: 'abonelik', ja: 'サブスクリプション', }, newSubscription: { zh: '添加订阅', en: 'New Subscription', + tr: 'Yeni abonelik', ja: 'サブスクリプション追加', }, subFailed: { zh: '订阅失败', en: 'Subscribe Failed', + tr: 'Abone Başarısız', ja: 'サブスクリプションが失敗しました', }, qosSubSysFailed: { zh: '拒绝了$SYS主题,错误的 QoS,MQTT Broker 拒绝了订阅。请检查 ACL 配置', en: 'Rejected the $SYS topic,Unexpected QoS, MQTT Broker declined the subscription. Please check ACL configuration', + tr: '$SYS konusu, Beklenmeyen QoS, MQTT Broker aboneliği reddetti. Lütfen ACL yapılandırmasını kontrol edin', ja: '$SYSトピックを拒否しま。した予期しないQoS、MQTT Brokerはサブスクリプションを拒否しました。ACL構成を確認してください', }, qosSubFailed: { zh: '错误的 QoS, SubACK 失败, 请检查 MQTT broker 设置', en: 'Unexpected QoS, SubACK failed, Please check MQTT broker configuration', + tr: 'Beklenmeyen QoS, SubACK başarısız oldu, Lütfen MQTT aracı yapılandırmasını kontrol edin', ja: '予期しないQoS, MQTT broker 構成を確認してください', }, emptySubFailed: { zh: '订阅为空', en: 'Subscription is empty', + tr: 'Abonelik boş', ja: 'サブスクリプションは空です', }, unknowSubFailed: { zh: '未知的订阅错误', en: 'Unknown subscription error', + tr: 'Bilinmeyen abonelik hatası', ja: '不明なサブスクリプションエラー', }, connected: { zh: '已连接', en: 'Connected', + tr: 'Bağlı', ja: '接続に成功しました', }, connectFailed: { zh: '连接失败', en: 'Connect Failed', + tr: 'Bağlantı sağlanamadı', ja: '接続に失敗しました', }, reconnect: { zh: '正在重连', en: 'Reconnecting', + tr: 'Yeniden bağlanılıyor', ja: '再接続中', }, connectBtn: { zh: '连 接', en: 'Connect', + tr: 'Bağlan', ja: '接 続', }, disconnectedBtn: { zh: '断开连接', en: 'Disconnect', + tr: 'Bağlantıyı kes', ja: '切 断', }, connectionExists: { zh: '连接数据已存在', en: 'Connection already exists', + tr: 'Bağlantı zaten var', ja: '接続がすでに存在しました', }, brokerIP: { zh: '服务器地址', en: 'Host', + tr: 'Sunucu', ja: 'ホスト', }, brokerPort: { zh: '端口', en: 'Port', + tr: 'Port', ja: 'ポート', }, certType: { zh: '证书类型', en: 'Certificate', + tr: 'Sertifika', ja: '証明書種類', }, name: { zh: '名称', en: 'Name', + tr: 'İsim', ja: '名前', }, username: { zh: '用户名', en: 'Username', + tr: 'Kullanıcı Adı', ja: 'ユーザー名', }, password: { zh: '密码', en: 'Password', + tr: 'Parola', ja: 'パスワード', }, ca: { zh: 'CA 文件', en: 'CA File', + tr: 'CA Dosyası', ja: 'CA ファイル', }, cert: { zh: '客户端证书', en: 'Client Certificate File', + tr: 'İstemci Sertifika Dosyası', ja: 'クライアント証明書', }, key: { zh: '客户端 key 文件', en: 'Client key file', + tr: 'İstemci anahtar dosyası', ja: 'クライアントキー', }, connectionTimeout: { zh: '连接超时时长', en: 'Connect Timeout', + tr: 'Bağlantı zaman aşımı', ja: '接続タイムアウト', }, cleanSession: { zh: '清除会话', en: 'Clean Session', + tr: 'Temiz Oturum', ja: 'セッションクリア', }, autoReconnect: { zh: '自动重连', en: 'Auto Reconnect', + tr: 'Otomatik Yeniden Bağlanma', ja: '自動再接続', }, mqttVersion: { zh: 'MQTT 版本', en: 'MQTT Version', + tr: 'MQTT Sürümü', ja: 'MQTT バージョン', }, sessionExpiryInterval: { zh: '会话过期时间', en: 'Session Expiry Interval', + tr: 'Oturum Bitiş Aralığı', ja: 'セッション有効期限', }, receiveMaximum: { zh: '接收最大数值', en: 'Receive Maximum', + tr: 'Maksimum Alma', ja: '最大受信数', }, topicAliasMaximum: { zh: '主题别名最大值', en: 'Topic Alias Maximum', + tr: 'Konu Takma Adı Maksimum', ja: 'Topic Aliasの最大値', }, requestResponseInformation: { zh: '请求响应信息', en: 'Request Response Information', + tr: 'Yanıt Bilgisi İste', ja: 'レスポンス情報をリクエストする', }, requestProblemInformation: { zh: '请求失败信息', en: 'Request Problem Information', + tr: 'Sorun Bilgisi İste', ja: '失敗情報をリクエストする', }, topicReuired: { zh: '请输入 Topic', en: 'Topic is required', + tr: 'Konu gerekli', ja: 'トピックを入力してください', }, payloadReuired: { zh: '请输入 Payload', en: 'Payload is required', + tr: 'Yük gerekli', ja: 'Payloadを入力してください', }, color: { zh: '标记', en: 'Color', + tr: 'Renk', ja: 'マーク', }, willMessage: { zh: '遗嘱消息', en: 'Last Will and Testament', + tr: 'Son arzu ve vasiyetname', ja: '遺言', }, strictValidateCertificate: { zh: 'SSL 安全', en: 'SSL Secure', + tr: 'SSL Güvenli', ja: 'SSL証明書', }, willTopic: { zh: '遗嘱消息主题', en: 'Last-Will Topic', + tr: 'Son Vasiyet Konusu', ja: '遺言トピック', }, willPayload: { zh: '遗嘱消息', en: 'Last-Will Payload', + tr: 'Son İrade Yükü', ja: '遺言 Payload', }, willQos: { zh: '遗嘱消息 QoS', en: 'Last-Will QoS', + tr: 'Son İstek QoS', ja: '遺言 QoS', }, willRetain: { zh: '遗嘱消息保留标志', en: 'Last-Will Retain', + tr: 'Son Tutulacak', ja: '遺言 Retain', }, willDelayInterval: { zh: '遗嘱消息延迟时间', en: 'Will Delay Interval', + tr: 'Gecikme Aralığı', ja: '遺言ディレイ間隔', }, messageExpiryInterval: { zh: '遗嘱消息过期时间', en: 'Will Expiry Interval', + tr: 'Sona Erme Aralığı', ja: '遺言有効期限', }, contentType: { zh: '遗嘱消息描述', en: 'Content Type', + tr: 'İçerik türü', ja: '遺言詳細情報', }, isUTF8Data: { zh: '是否为 UTF-8 编码数据', en: 'is UTF-8 Encoded Data', + tr: 'UTF-8 Kodlu Veridira', ja: 'UTF-8エンコードデータ', }, duplicateName: { zh: '该名称已存在,请重新命名!', en: 'Duplicate name. Please rename it!', + tr: 'Yinelenen ad. Lütfen yeniden adlandırın!', ja: '名称が既に存在したので、リネームをお願いします!', }, nameTip: { zh: '可快速选择已创建过的连接配置', en: 'Quick selection of created connection configurations', + tr: 'Oluşturulan bağlantı konfigürasyonlarının hızlı seçimi', ja: '作成された接続構成を早めに選択することができます', }, clientIdWithTimeTip: { zh: '附加时间戳到 ClientID 后,以防止重复的连接', en: 'Append a timestamp to the ClientID to prevent duplicate connections', + tr: "Yinelenen bağlantıları önlemek için ClientID'ye bir zaman damgası ekleyin", ja: '重複接続を防ぐために、ClientIDにタイムスタンプを追加します', }, publishMsg: { zh: '发送消息', en: 'Publish message', + tr: 'Mesaj yayınla', ja: '送信エラー:', }, receivedMsg: { zh: '接收消息', en: 'Received message', + tr: 'Mesaj alındı', ja: '受信エラー:', }, receivedPayloadDecodedBy: { zh: '接收到的 Payload 解码', en: 'Received payload decoded by', + tr: 'Alınan yükün kodu çözüldü', ja: '受信したペイロードをデコードする', }, alias: { zh: '别名', en: 'Alias', + tr: 'Takma Ad', ja: 'エイリアス', }, exportData: { zh: '导出数据', en: 'Export Data', + tr: 'Verileri Dışa Aktar', ja: 'エクスポート', }, exportFormat: { zh: '导出数据格式', en: 'Export format', + tr: 'Dışa aktarma biçimi', ja: 'エクスポートフォーマット', }, cleanHistoryData: { zh: '清除历史数据', en: 'Clean history data', + tr: 'Geçmiş verileri temizle', ja: 'クリーンな履歴データ', }, cleanHistorySuccess: { zh: '清除历史数据成功', en: 'Clear history successfully', + tr: 'Geçmişi başarıyla temizle', ja: '履歴を正常にクリアする', }, allConnections: { zh: '全部数据', en: 'All connections', + tr: 'Tüm bağlantılar', ja: '全ての接続', }, allConnectionsTips: { zh: '当打开此开关后,可以导出全部数据', en: 'When this switch is turned on, all Connections data can be exported', + tr: 'Bu anahtar açıldığında, tüm Bağlantı verileri dışa aktarılabilir', ja: 'このスイッチをオンにすると、全ての接続のデータをエクスポートすることができます', }, importData: { zh: '导入数据', en: 'Import Data', + tr: 'Verileri İçe Aktar', ja: 'インポート', }, importFormat: { zh: '导入数据格式', en: 'Import format', + tr: 'İçe aktarma biçimi', ja: 'フォーマット', }, importConnectionsTip: { @@ -369,128 +442,155 @@ export default { en: `For the content of the imported file, please refer to
the content of the file generated by the exported data.
If id duplicates the original data will be overwritten.`, + tr: `İçe aktarılan dosyanın içeriği için lütfen bkz.
+ dışa aktarılan veriler tarafından oluşturulan dosyanın içeriği.
+ Kimlik kopyalanırsa, orijinal verilerin üzerine yazılacaktır.`, ja: `インポートしたファイルの内容については、エクスポートされたデータで生成されたファイルの内容を参照してください。
idが重複している場合は、元のデータが上書きされます。`, }, importFile: { zh: '导入文件', en: 'Import File', + tr: 'Dosyayı İçe Aktar', ja: 'ファイル', }, readFileErr: { zh: '文件读取失败:', en: 'An error ocurred reading the file:', + tr: 'Dosya okunurken bir hata oluştu:', ja: '読み込み中にエラーが発生したファイル:', }, fileContentRequired: { zh: '文件内容中必填项为空', en: 'Required fields in the file content are empty', + tr: 'Dosya içeriğindeki gerekli alanlar boş', ja: '必須フィールドに値を入力してください', }, searchContent: { zh: '内容搜索', en: 'Search', + tr: 'Ara', ja: '内容検索', }, inputTopic: { zh: '请输入主题', en: 'Please input Topic', + tr: 'Lütfen Konu Girin', ja: 'トピックを入力してください', }, inputMsgContent: { zh: '请输入消息内容', en: 'Please input Message', + tr: 'Lütfen Mesaj Giriniz', ja: 'メッセージ内容を入力してください', }, flieName: { zh: '文件名', en: 'File Name', + tr: 'Dosya Adı', ja: 'ファイル名', }, uploadFileTip: { zh: '文件内容格式错误或为空', en: 'The file content is malformed or empty', + tr: 'Dosya içeriği bozuk veya boş', ja: 'ファイルの内容が不正な形式または空です', }, messageCount: { zh: '消息数', en: 'Message count', + tr: 'Mesaj sayısı', ja: 'メッセージ数', }, timedMessage: { zh: '定时消息', en: 'Timed message', + tr: 'Zamanlanmış mesaj', ja: '自動送信', }, msgFrequency: { zh: '消息频率(秒)', en: 'Message frequency(s)', + tr: 'Mesaj sıklık(lar)ı', ja: '送信間隔(秒)', }, clearIntervalBtn: { zh: '清理定时器', en: 'Clear timer', + tr: 'Zamanlayıcıyı temizle', ja: '自動送信を解除する', }, setTimerSuccess: { zh: '成功设置定时器,发送一条消息将触发定时消息', en: 'Timer set successfully, sending a message will trigger timed messages', + tr: 'Zamanlayıcı başarıyla ayarlandı, bir mesaj göndermek zamanlanmış mesajları tetikleyecek', ja: `自動送信を設定しました。 これから一つのメッセージを送信すると、設定した時間間隔で自動的に該当メッセージを送信できます`, }, startTimedMessage: { zh: '成功开启定时消息,消息频率(秒):', en: 'Opened timed message successfully, frequency(s): ', + tr: 'Zamanlanmış mesaj başarıyla açıldı, sıklık(lar):', ja: 'メッセージの自動送信が始まりました。送信間隔(秒): ', }, stopTimedMessage: { zh: '已停止发送定时消息', en: 'Stopped sending timed messages', + tr: 'Zamanlanmış mesaj göndermeyi durdurdu', ja: '自動送信設定を解除しました', }, systemTopic: { zh: '系统主题', en: 'System topic', + tr: 'Sistem konusu', ja: 'システムトピック', }, bytesStatistics: { zh: '收发流量统计', en: 'Bytes statistics', + tr: 'Bayt istatistikleri', ja: 'データ通信の利用状況', }, bytesReceived: { zh: '累计接收流量', en: 'Accumulated received bytes', + tr: 'Birikmiş alınan baytlar', ja: '累積受信バイト数', }, bytesSent: { zh: '累计发送流量', en: 'Accumulated sent bytes', + tr: 'Birikmiş gönderilen baytlar', ja: '累積送信バイト数', }, secureTip: { zh: '是否验证服务端证书链和地址名称', en: "Whether a client verifies the server's certificate chain and host name", + tr: 'İstemcinin sunucunun sertifika zincirini ve ana bilgisayar adını doğrulayıp doğrulamadığı', ja: "Whether a client verifies the server's certificate chain and host name", }, newCollection: { zh: '新建分组', en: 'New Collection', + tr: 'Yeni koleksiyon', ja: '新しいフォルダ', }, collectionPlaceholder: { zh: '分组名称', en: 'Collection name', + tr: 'Koleksiyon adı', ja: 'フォルダ名', }, deleteCollection: { zh: '删除分组', en: 'Delete Collection', + tr: 'Koleksiyonu Sil', ja: 'フォルダを削除する', }, renameCollection: { zh: '重命名分组', en: 'Rename Collection', + tr: 'Koleksiyona Yeniden Ad Ver', ja: '名前を変更する', }, } diff --git a/src/lang/index.ts b/src/lang/index.ts index 56fc4bb4b..540db2406 100644 --- a/src/lang/index.ts +++ b/src/lang/index.ts @@ -3,18 +3,20 @@ import VueI18n from 'vue-i18n' import zhLocale from 'element-ui/lib/locale/lang/zh-CN' import enLocale from 'element-ui/lib/locale/lang/en' import jaLocale from 'element-ui/lib/locale/lang/ja' +import trLocale from 'element-ui/lib/locale/lang/tr-TR' import { formati18n } from '@/utils/i18n' -const supportLang: SupportLangModel = ['zh', 'en', 'ja'] +const supportLang: SupportLangModel = ['zh', 'en', 'ja', 'tr'] const i18nModules: i18nLocaleModel = ['connections', 'settings', 'common', 'about', 'script', 'log'] -const { en, zh, ja }: VueI18n.LocaleMessages = formati18n(i18nModules, supportLang) +const { en, zh, ja, tr }: VueI18n.LocaleMessages = formati18n(i18nModules, supportLang) const lang: VueI18n.LocaleMessages = { en: { ...en, ...enLocale }, zh: { ...zh, ...zhLocale }, ja: { ...ja, ...jaLocale }, + tr: { ...tr, ...trLocale }, } export default lang diff --git a/src/lang/log.ts b/src/lang/log.ts index f476d49ad..571ae64ac 100644 --- a/src/lang/log.ts +++ b/src/lang/log.ts @@ -3,5 +3,6 @@ export default { zh: '日志', en: 'Log', ja: 'ログ', + tr: 'Günlük', }, } diff --git a/src/lang/script.ts b/src/lang/script.ts index 2b018ed46..de92332f0 100644 --- a/src/lang/script.ts +++ b/src/lang/script.ts @@ -2,61 +2,73 @@ export default { script: { zh: '脚本', en: 'Script', + tr: 'Komut dosyası', ja: 'スクリプト', }, scriptName: { zh: '脚本名称', en: 'Script name', + tr: 'Komut adı', ja: 'スクリプト名', }, test: { zh: '测 试', en: 'Test', + tr: 'Test', ja: 'テスト', }, input: { zh: '输入', en: 'Input', + tr: 'Girdi', ja: 'インプット', }, output: { zh: '输出', en: 'Output', + tr: 'Çıktı', ja: 'アウトプット', }, saveScript: { zh: '保存脚本', en: 'Save script', + tr: 'Komut dosyası kaydet', ja: '保存', }, useScript: { zh: '使用脚本', en: 'Use script', + tr: 'Komut dosyası kullan', ja: 'スクリプトを使う', }, removeScript: { zh: '停止脚本', en: 'Stop script', + tr: 'Komut dosyası durdur', ja: '停止', }, applyType: { zh: '应用于', en: 'Applied to', + tr: 'Uygulanan', ja: '適用対象', }, scriptRequired: { zh: '请选择脚本', en: 'Script name is required', + tr: 'Komut dosyası dosyası adı gerekli', ja: 'スクリプト名を選択してください', }, startScript: { zh: '脚本功能已开启', en: 'Script is enabled', + tr: 'Komut dosyası aktif', ja: 'スクリプトが有効になっています', }, stopScirpt: { zh: '脚本功能已停止', en: 'Script has stopped', + tr: 'Komut dosyası durduruldu', ja: 'スクリプトが停止しました', }, } diff --git a/src/lang/settings.ts b/src/lang/settings.ts index 6e19f42d1..e1ccd0869 100644 --- a/src/lang/settings.ts +++ b/src/lang/settings.ts @@ -2,86 +2,103 @@ export default { settings: { zh: '设置', en: 'Settings', + tr: 'Ayarlar', ja: '設定', }, general: { zh: '基础', en: 'General', + tr: 'Genel', ja: '一般', }, language: { zh: '语言', en: 'Language', + tr: 'Dil', ja: '言語', }, automatically: { zh: '自动检查更新', en: 'Auto check update', + tr: 'Otomatik güncelleme', ja: '自動更新チェック', }, maxReconnectTimes: { zh: '最大重连次数', en: 'Max reconnection times', + tr: 'Maks yeniden bağlantı süreleri', ja: '最大再接続回数', }, appearance: { zh: '外观', en: 'Appearance', + tr: 'Görünüm', ja: '外観', }, theme: { zh: '主题', en: 'Theme', + tr: 'Tema', ja: 'テーマ', }, light: { zh: '浅色', en: 'Light', + tr: 'Açık', ja: 'ライト', }, dark: { zh: '深色', en: 'Dark', + tr: 'Koyu', ja: 'ダーク', }, advanced: { zh: '高级', en: 'Advanced', + tr: 'Gelişmiş', ja: '詳細', }, dataBackup: { zh: '数据备份', en: 'Data backup', + tr: 'Yedekleme', ja: 'データバックアップ', }, dataRecovery: { zh: '数据恢复', en: 'Data recovery', + tr: 'Veri kurtarma', ja: 'データ復旧', }, historyCleanup: { zh: '清除历史数据', en: 'Clear history data', + tr: 'Geçmiş verileri temizle', ja: '履歴データをクリアする', }, dataManage: { zh: '数据管理', en: 'Data management', + tr: 'Veri yönetimi', ja: 'データ管理', }, autoResub: { zh: '自动恢复订阅', en: 'Auto resubscribe', + tr: 'Otomatik yeniden abone ol', ja: '自動的に再購読', }, autoResubDesc: { zh: '重连时,对连接的订阅列表进行恢复订阅,仅在 Clean Session 为 True 时有效', en: 'When reconnecting, the subscription list of the connection will be automatically resubscribed, which is only valid when Clean Session is True', + tr: 'Yeniden bağlanırken, bağlantının abonelik listesi otomatik olarak yeniden abone olur ve bu yalnızca Temiz Oturum Doğru olduğunda geçerlidir.', ja: '再接続すると、接続のサブスクリプションリストが自動的に再サブスクライブされます。これは、クリーンセッションがTrueの場合にのみ有効です', }, cleanHistoryDialogMessage: { zh: '将会清除历史建议信息,包括历史 Payload/QoS/Retain/Topic/Connection 数据', en: 'It will clear the historical suggestion information, including historical Payload/QoS/Retain/Topic/Connection', + tr: 'Geçmiş Yük/QoS/Saklama/Konu/Bağlantı dahil olmak üzere geçmiş öneri bilgilerini temizleyecektir.', ja: 'ペイロード/ QoS /保持/トピック/接続を含む過去の提案情報をクリアします', }, } diff --git a/src/types/global.d.ts b/src/types/global.d.ts index dd8c76deb..fac0c980f 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -14,7 +14,7 @@ declare global { type Theme = 'light' | 'dark' | 'night' - type Language = 'zh' | 'en' | 'ja' + type Language = 'zh' | 'en' | 'ja' | 'tr' type Protocol = 'ws' | 'wss' | 'mqtt' | 'mqtts' diff --git a/src/types/locale.d.ts b/src/types/locale.d.ts index 329e5097d..a20645ebf 100644 --- a/src/types/locale.d.ts +++ b/src/types/locale.d.ts @@ -3,9 +3,10 @@ declare module 'element-ui/lib/locale' {} declare module 'element-ui/lib/locale/lang/en' {} declare module 'element-ui/lib/locale/lang/zh-CN' {} declare module 'element-ui/lib/locale/lang/ja' {} +declare module 'element-ui/lib/locale/lang/tr-TR' {} type i18nLocaleModel = ['connections', 'settings', 'common', 'about', 'script', 'log'] -type SupportLangModel = ['zh', 'en', 'ja'] +type SupportLangModel = ['zh', 'en', 'ja', 'tr'] declare module '*.json' { const value: any diff --git a/src/views/settings/index.vue b/src/views/settings/index.vue index c6c1cbead..f956d0d69 100644 --- a/src/views/settings/index.vue +++ b/src/views/settings/index.vue @@ -200,6 +200,7 @@ export default class Settings extends Vue { private langOptions: Options[] = [ { label: '简体中文', value: 'zh' }, { label: 'English', value: 'en' }, + { label: 'Türkçe', value: 'tr' }, { label: '日本語', value: 'ja' }, ] private themeOptions: Options[] = [