mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
Add a language selector to the System Settings page supporting English, Japanese, and Chinese. The i18n dictionary already contained zh translations but lacked the UI to switch languages. Changes: - html/i18n.js: add sys_language key to en/ja/zh - html/system.html: add language selector dropdown - html/system.js: add changeLang() and selector initialization - tools/httpd_sim.c: fix cookie parsing for multi-cookie headers; fix Set-Cookie response (missing Path=/, missing \r\n\r\n); add SO_REUSEADDR for faster port reuse
580 lines
19 KiB
JavaScript
580 lines
19 KiB
JavaScript
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_language: 'Language:',
|
|
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',
|
|
|
|
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_language: '言語:',
|
|
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: 'ファイルをアップロード',
|
|
|
|
common_port: 'ポート ',
|
|
common_pkts: ' pkts',
|
|
},
|
|
|
|
zh: {
|
|
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: 'Tagged 端口',
|
|
vlan_untagged: 'Untagged 端口',
|
|
vlan_select_all: '全选',
|
|
vlan_pvid: '作为入方向流量的默认 VLAN (PVID)',
|
|
vlan_update: '更新 / 创建',
|
|
vlan_configured: '已配置 VLAN',
|
|
vlan_col_name: '名称',
|
|
vlan_col_member: '成员端口',
|
|
vlan_col_tagged: 'Tagged 端口',
|
|
vlan_col_untagged: '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_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: '带宽 [kbit/s]',
|
|
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_language: '语言:',
|
|
sys_ip_note: '更新上述设置后,请使用新的 IP 地址重新访问管理界面:',
|
|
sys_update: '更新设置',
|
|
sys_save_label: '将当前全部设置保存到 Flash:',
|
|
sys_save: '保存设置到 Flash',
|
|
sys_advanced: '高级设置',
|
|
sys_startup_config: '启动配置:',
|
|
sys_startup_warn: '直接编辑启动配置时请谨慎,错误配置可能导致无法访问设备:',
|
|
sys_clear_config: '清除启动配置',
|
|
sys_save_startup: '保存启动配置到 Flash',
|
|
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: '上传文件',
|
|
|
|
common_port: '端口 ',
|
|
common_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);
|
|
});
|
|
}
|
|
}
|
|
|
|
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);
|
|
});
|
|
});
|