mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
support i18n & translate japanese
This commit is contained in:
+402
@@ -0,0 +1,402 @@
|
||||
var LANG = {
|
||||
en: {
|
||||
nav_overview: 'Overview',
|
||||
nav_port_config: 'Port Configuration',
|
||||
nav_port_stat: 'Port Statistics',
|
||||
nav_l2: 'L2 Configuration',
|
||||
nav_mirror: 'Mirroring',
|
||||
nav_lag: 'Link Aggregation',
|
||||
nav_eee: 'EEE',
|
||||
nav_bandwidth: 'Bandwidth Limits',
|
||||
nav_system: 'System Settings',
|
||||
nav_fw_update: 'Firmware Update',
|
||||
|
||||
port_name: 'Name',
|
||||
port_status: 'Status',
|
||||
port_not_enabled: 'Not enabled.',
|
||||
port_link_speed: 'Link speed',
|
||||
port_vendor: 'Vendor',
|
||||
port_model: 'Model',
|
||||
port_serial: 'Serial',
|
||||
port_temp: 'Temp',
|
||||
port_vcc: 'Vcc',
|
||||
port_tx_fault: 'TX-Fault',
|
||||
port_tx_disabled: 'TX-Disabled',
|
||||
port_tx_bias: 'TX-Bias',
|
||||
port_tx_power: 'TX-Power',
|
||||
port_rx_power: 'RX-Power',
|
||||
port_rx_los: 'RX-LOS',
|
||||
|
||||
speed_disabled: 'Disabled',
|
||||
speed_down: 'Down',
|
||||
|
||||
port_title: 'FreeSwitchOS Port Configuration',
|
||||
port_heading: 'Port Configuration',
|
||||
port_col_port: 'Port',
|
||||
port_col_name: 'Name',
|
||||
port_col_speed: 'Current Link Speed',
|
||||
port_col_set_speed: 'Set Speed',
|
||||
port_col_disabled: 'Disabled',
|
||||
port_col_apply: 'Apply',
|
||||
port_mtu_heading: 'Configure Maximum Frame Size (MTU) forwarded at Port',
|
||||
port_auto: 'Auto',
|
||||
port_2500m: '2500MBit/Full',
|
||||
port_1000m: '1000MBit/Full',
|
||||
port_100m_f: '100MBit/Full',
|
||||
port_100m_h: '100MBit/Half',
|
||||
port_10m_f: '10MBit/Full',
|
||||
port_10m_h: '10MBit/Half',
|
||||
port_apply: 'Apply',
|
||||
|
||||
stat_title: 'FreeSwitchOS Port Statistics',
|
||||
stat_heading: 'Port Statistics',
|
||||
stat_detailed: 'Detailed Port Statistics',
|
||||
stat_close: 'Close',
|
||||
stat_col_port: 'Port',
|
||||
stat_col_name: 'Name',
|
||||
stat_col_link: 'link',
|
||||
stat_col_tx_good: 'TX Good',
|
||||
stat_col_tx_bad: 'TX Bad',
|
||||
stat_col_rx_good: 'RX Good',
|
||||
stat_col_rx_bad: 'RX Bad',
|
||||
stat_col_all: 'All Counters',
|
||||
stat_counter: 'Counter',
|
||||
stat_value: 'Value',
|
||||
stat_show: 'Show',
|
||||
|
||||
vlan_title: 'FreeSwitchOS VLAN Configuration',
|
||||
vlan_heading: 'VLAN Configuration',
|
||||
vlan_select: 'VLAN Select:',
|
||||
vlan_choose: '— VLAN Choose —',
|
||||
vlan_id: 'VLAN ID:',
|
||||
vlan_get_config: 'Get Configuration',
|
||||
vlan_name: 'VLAN Name:',
|
||||
vlan_tagged: 'Tagged Ports',
|
||||
vlan_untagged: 'Untagged Ports',
|
||||
vlan_select_all: 'Select all',
|
||||
vlan_pvid: 'Use as default VLAN for incoming traffic (PVID)',
|
||||
vlan_update: 'Update / Create',
|
||||
vlan_configured: 'Configured VLANs',
|
||||
vlan_col_name: 'Name',
|
||||
vlan_col_member: 'Member Ports',
|
||||
vlan_col_tagged: 'Tagged Ports',
|
||||
vlan_col_untagged: 'Untagged Ports',
|
||||
vlan_col_pvid: 'PVID Ports',
|
||||
vlan_col_delete: 'Delete',
|
||||
vlan_set_id_first: 'Set VLAN ID first',
|
||||
vlan_delete_confirm: 'Delete VLAN ',
|
||||
|
||||
lag_title: 'Link Aggregation Configuration',
|
||||
lag_heading: 'Link Aggregation Groups Configuration',
|
||||
lag_update: 'Update / Create',
|
||||
|
||||
mirror_title: 'Mirror Configuration',
|
||||
mirror_heading: 'Mirror Configuration',
|
||||
mirror_enabled: 'Enabled:',
|
||||
mirror_port: 'Mirroring Port:',
|
||||
mirror_tx: 'Mirrored Ports (TX)',
|
||||
mirror_rx: 'Mirrored Ports (RX)',
|
||||
mirror_update: 'Update / Create',
|
||||
mirror_disable: 'Disable Mirroring',
|
||||
mirror_set_port_first: 'Set Mirroring Port first',
|
||||
mirror_select_ports: 'Select Mirrored Ports',
|
||||
|
||||
eee_title: 'EEE Configuration',
|
||||
eee_heading: 'EEE Status',
|
||||
eee_advertising: 'Advertising',
|
||||
eee_partner: 'Link-Partner advertises',
|
||||
eee_port: 'Port',
|
||||
eee_active: 'Active?',
|
||||
eee_enable: 'Enable EEE',
|
||||
eee_disable: 'Disable EEE',
|
||||
eee_on: 'ON',
|
||||
eee_off: 'OFF',
|
||||
|
||||
l2_title: 'FreeSwitchOS L2 Configuration',
|
||||
l2_heading: 'L2 Configuration',
|
||||
l2_col_port: 'Port',
|
||||
l2_col_type: 'Type',
|
||||
l2_col_remove: 'Remove Entry',
|
||||
l2_delete: 'Delete',
|
||||
l2_static: 'static',
|
||||
l2_learned: 'learned',
|
||||
|
||||
bw_title: 'Ingress and Egress Bandwidth',
|
||||
bw_heading: 'Ingress and Egress Bandwidth',
|
||||
bw_ingress: 'Ingress',
|
||||
bw_egress: 'Egress',
|
||||
bw_col_port: 'Port',
|
||||
bw_col_limit: 'Limit',
|
||||
bw_col_bandwidth: 'Bandwidth [kBit/s]',
|
||||
bw_col_flow: 'Flow Control',
|
||||
bw_col_apply: 'Apply',
|
||||
bw_unlimited: 'UNLIMITED',
|
||||
|
||||
sys_title: 'System Settings',
|
||||
sys_tab_system: 'System',
|
||||
sys_tab_advanced: 'Advanced',
|
||||
sys_tab_console: 'Console',
|
||||
sys_heading: 'System Settings',
|
||||
sys_ip: 'IP address:',
|
||||
sys_netmask: 'Netmask:',
|
||||
sys_gateway: 'Gateway:',
|
||||
sys_ip_note: 'When updating the above settings, remember to point your browser to the new IP afterwards:',
|
||||
sys_update: 'Update Settings',
|
||||
sys_save_label: 'Save all current settings to Flash:',
|
||||
sys_save: 'Save Settings to Flash',
|
||||
sys_advanced: 'Advanced Settings',
|
||||
sys_startup_config: 'Startup configuration:',
|
||||
sys_startup_warn: 'Be careful when saving the directly edited startup configuration, you can lock yourself out:',
|
||||
sys_clear_config: 'Clear Startup Config',
|
||||
sys_save_startup: 'Save Startup Settings to Flash',
|
||||
sys_reset: 'Reset Switch',
|
||||
sys_console: 'Console Command',
|
||||
sys_enter_cmd: 'Enter command:',
|
||||
sys_send_cmd: 'Send Command',
|
||||
sys_console_warn: 'Be careful when entering console commands, you can lock yourself out!',
|
||||
sys_invalid_ip: 'Invalid ip:',
|
||||
sys_reset_confirm: 'Are you sure you want to reset the switch?',
|
||||
sys_resetting: 'Switch is resetting. Please wait and refresh the page.',
|
||||
|
||||
login_title: 'RTL Switch Login',
|
||||
login_heading: 'RTL Switch Login',
|
||||
login_wrong: 'Wrong password!',
|
||||
login_password: 'Password',
|
||||
login_login: 'Login',
|
||||
|
||||
index_title: 'FreeSwitchOS Main Page',
|
||||
index_heading: 'Switch Configuration',
|
||||
index_settings: 'Settings',
|
||||
|
||||
update_title: 'Firmware update',
|
||||
update_heading: 'Firmware Update',
|
||||
update_instruction: 'Choose a firmware update file to upload:',
|
||||
update_upload: 'Upload File',
|
||||
|
||||
lang_switch: 'Language:',
|
||||
common_port: 'Port ',
|
||||
common_pkts: ' pkts',
|
||||
},
|
||||
|
||||
ja: {
|
||||
nav_overview: '概要',
|
||||
nav_port_config: 'ポート設定',
|
||||
nav_port_stat: 'ポート統計',
|
||||
nav_l2: 'L2 設定',
|
||||
nav_mirror: 'ミラーリング',
|
||||
nav_lag: 'リンクアグリゲーション',
|
||||
nav_eee: 'EEE',
|
||||
nav_bandwidth: '帯域制限',
|
||||
nav_system: 'システム設定',
|
||||
nav_fw_update: 'ファームウェア更新',
|
||||
|
||||
port_name: '名前',
|
||||
port_status: '状態',
|
||||
port_not_enabled: '無効',
|
||||
port_link_speed: 'リンク速度',
|
||||
port_vendor: 'ベンダー',
|
||||
port_model: 'モデル',
|
||||
port_serial: 'シリアル',
|
||||
port_temp: '温度',
|
||||
port_vcc: '電圧',
|
||||
port_tx_fault: 'TX 障害',
|
||||
port_tx_disabled: 'TX 無効',
|
||||
port_tx_bias: 'TX バイアス',
|
||||
port_tx_power: 'TX 電力',
|
||||
port_rx_power: 'RX 電力',
|
||||
port_rx_los: 'RX 信号ロス',
|
||||
|
||||
speed_disabled: '無効',
|
||||
speed_down: 'リンクダウン',
|
||||
|
||||
port_title: 'FreeSwitchOS ポート設定',
|
||||
port_heading: 'ポート設定',
|
||||
port_col_port: 'ポート',
|
||||
port_col_name: '名前',
|
||||
port_col_speed: '現在のリンク速度',
|
||||
port_col_set_speed: '速度設定',
|
||||
port_col_disabled: '無効',
|
||||
port_col_apply: '適用',
|
||||
port_mtu_heading: 'ポートの最大フレームサイズ (MTU) 設定',
|
||||
port_auto: '自動',
|
||||
port_2500m: '2500Mbps/全二重',
|
||||
port_1000m: '1000Mbps/全二重',
|
||||
port_100m_f: '100Mbps/全二重',
|
||||
port_100m_h: '100Mbps/半二重',
|
||||
port_10m_f: '10Mbps/全二重',
|
||||
port_10m_h: '10Mbps/半二重',
|
||||
port_apply: '適用',
|
||||
|
||||
stat_title: 'FreeSwitchOS ポート統計',
|
||||
stat_heading: 'ポート統計',
|
||||
stat_detailed: '詳細ポート統計',
|
||||
stat_close: '閉じる',
|
||||
stat_col_port: 'ポート',
|
||||
stat_col_name: '名前',
|
||||
stat_col_link: 'リンク',
|
||||
stat_col_tx_good: 'TX 正常',
|
||||
stat_col_tx_bad: 'TX 異常',
|
||||
stat_col_rx_good: 'RX 正常',
|
||||
stat_col_rx_bad: 'RX 異常',
|
||||
stat_col_all: '全カウンタ',
|
||||
stat_counter: 'カウンタ',
|
||||
stat_value: '値',
|
||||
stat_show: '表示',
|
||||
|
||||
vlan_title: 'FreeSwitchOS VLAN 設定',
|
||||
vlan_heading: 'VLAN 設定',
|
||||
vlan_select: 'VLAN 選択:',
|
||||
vlan_choose: '— VLAN 選択 —',
|
||||
vlan_id: 'VLAN ID:',
|
||||
vlan_get_config: '設定取得',
|
||||
vlan_name: 'VLAN 名:',
|
||||
vlan_tagged: 'タグ付きポート',
|
||||
vlan_untagged: 'タグ無しポート',
|
||||
vlan_select_all: 'すべて選択',
|
||||
vlan_pvid: '受信トラフィックのデフォルト VLAN (PVID)',
|
||||
vlan_update: '更新 / 作成',
|
||||
vlan_configured: '設定済み VLAN',
|
||||
vlan_col_name: '名前',
|
||||
vlan_col_member: 'メンバーポート',
|
||||
vlan_col_tagged: 'タグ付きポート',
|
||||
vlan_col_untagged: 'タグ無しポート',
|
||||
vlan_col_pvid: 'PVID ポート',
|
||||
vlan_col_delete: '削除',
|
||||
vlan_set_id_first: 'VLAN ID を先に設定してください',
|
||||
vlan_delete_confirm: 'VLAN 削除 ',
|
||||
|
||||
lag_title: 'リンクアグリゲーション設定',
|
||||
lag_heading: 'リンクアグリゲーショングループ設定',
|
||||
lag_update: '更新 / 作成',
|
||||
|
||||
mirror_title: 'ミラーリング設定',
|
||||
mirror_heading: 'ミラーリング設定',
|
||||
mirror_enabled: '有効:',
|
||||
mirror_port: 'ミラーポート:',
|
||||
mirror_tx: 'ミラー元ポート (TX)',
|
||||
mirror_rx: 'ミラー元ポート (RX)',
|
||||
mirror_update: '更新 / 作成',
|
||||
mirror_disable: 'ミラーリング無効化',
|
||||
mirror_set_port_first: 'ミラーポートを先に設定してください',
|
||||
mirror_select_ports: 'ミラー元ポートを選択してください',
|
||||
|
||||
eee_title: 'EEE 設定',
|
||||
eee_heading: 'EEE 状態',
|
||||
eee_advertising: 'EEE アドバタイジング',
|
||||
eee_partner: 'リンクパートナー広告',
|
||||
eee_port: 'ポート',
|
||||
eee_active: '有効?',
|
||||
eee_enable: 'EEE 有効化',
|
||||
eee_disable: 'EEE 無効化',
|
||||
eee_on: 'オン',
|
||||
eee_off: 'オフ',
|
||||
|
||||
l2_title: 'FreeSwitchOS L2 設定',
|
||||
l2_heading: 'L2 設定',
|
||||
l2_col_port: 'ポート',
|
||||
l2_col_type: 'タイプ',
|
||||
l2_col_remove: 'エントリ削除',
|
||||
l2_delete: '削除',
|
||||
l2_static: '静的',
|
||||
l2_learned: '学習',
|
||||
|
||||
bw_title: '入力/出力帯域制限',
|
||||
bw_heading: '入力/出力帯域制限',
|
||||
bw_ingress: '入力',
|
||||
bw_egress: '出力',
|
||||
bw_col_port: 'ポート',
|
||||
bw_col_limit: '制限',
|
||||
bw_col_bandwidth: '帯域 [kbps]',
|
||||
bw_col_flow: 'フロー制御',
|
||||
bw_col_apply: '適用',
|
||||
bw_unlimited: '制限無し',
|
||||
|
||||
sys_title: 'システム設定',
|
||||
sys_tab_system: 'システム',
|
||||
sys_tab_advanced: '詳細設定',
|
||||
sys_tab_console: 'コンソール',
|
||||
sys_heading: 'システム設定',
|
||||
sys_ip: 'IP アドレス:',
|
||||
sys_netmask: 'ネットマスク:',
|
||||
sys_gateway: 'ゲートウェイ:',
|
||||
sys_ip_note: '上記設定を変更した場合は、ブラウザで新しい IP にアクセスしてください:',
|
||||
sys_update: '設定更新',
|
||||
sys_save_label: '現在の設定をフラッシュに保存:',
|
||||
sys_save: '設定をフラッシュに保存',
|
||||
sys_advanced: '詳細設定',
|
||||
sys_startup_config: '起動設定:',
|
||||
sys_startup_warn: '起動設定を直接編集する際は注意してください。ロックアウトされる可能性があります:',
|
||||
sys_clear_config: '起動設定クリア',
|
||||
sys_save_startup: '起動設定をフラッシュに保存',
|
||||
sys_reset: 'スイッチ再起動',
|
||||
sys_console: 'コンソールコマンド',
|
||||
sys_enter_cmd: 'コマンド入力:',
|
||||
sys_send_cmd: 'コマンド送信',
|
||||
sys_console_warn: 'コンソールコマンドは注意して入力してください。ロックアウトされる可能性があります!',
|
||||
sys_invalid_ip: '無効な IP: ',
|
||||
sys_reset_confirm: 'スイッチを再起動してもよろしいですか?',
|
||||
sys_resetting: 'スイッチを再起動中です。しばらく待ってからページをリロードしてください。',
|
||||
|
||||
login_title: 'RTL スイッチ ログイン',
|
||||
login_heading: 'RTL スイッチ ログイン',
|
||||
login_wrong: 'パスワードが違います!',
|
||||
login_password: 'パスワード',
|
||||
login_login: 'ログイン',
|
||||
|
||||
index_title: 'FreeSwitchOS メインページ',
|
||||
index_heading: 'スイッチ設定',
|
||||
index_settings: '設定',
|
||||
|
||||
update_title: 'ファームウェア更新',
|
||||
update_heading: 'ファームウェア更新',
|
||||
update_instruction: 'アップロードするファームウェアファイルを選択:',
|
||||
update_upload: 'ファイルをアップロード',
|
||||
|
||||
lang_switch: '言語:',
|
||||
common_port: 'ポート ',
|
||||
common_pkts: ' pkts',
|
||||
}
|
||||
};
|
||||
|
||||
var rtlLang = (function() {
|
||||
var saved = localStorage.getItem('rtl_lang');
|
||||
if (saved && LANG[saved]) return saved;
|
||||
var browser = (navigator.language || navigator.userLanguage || 'en').substring(0, 2);
|
||||
return LANG[browser] ? browser : 'en';
|
||||
})();
|
||||
|
||||
function t(key) {
|
||||
return LANG[rtlLang][key] || LANG['en'][key] || key;
|
||||
}
|
||||
|
||||
function setLang(lang) {
|
||||
if (LANG[lang]) {
|
||||
localStorage.setItem('rtl_lang', lang);
|
||||
rtlLang = lang;
|
||||
document.querySelectorAll('[data-i18n]').forEach(function(el) {
|
||||
applyTranslation(el);
|
||||
});
|
||||
var sel = document.getElementById('rtl-lang-select');
|
||||
if (sel) sel.value = lang;
|
||||
}
|
||||
}
|
||||
|
||||
function applyTranslation(el) {
|
||||
var key = el.getAttribute('data-i18n');
|
||||
if (!key) return;
|
||||
if (el.tagName === 'INPUT' && (el.type === 'submit' || el.type === 'button')) {
|
||||
el.value = t(key);
|
||||
} else if (el.tagName === 'OPTION') {
|
||||
el.textContent = t(key);
|
||||
} else if (el.tagName === 'TITLE') {
|
||||
el.textContent = t(key);
|
||||
} else {
|
||||
el.innerHTML = t(key);
|
||||
}
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.querySelectorAll('[data-i18n]').forEach(function(el) {
|
||||
applyTranslation(el);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user