add chinese support
This commit is contained in:
@@ -66,7 +66,10 @@ def get_extra_depending():
|
||||
for g in ri_data.Group.dict.values():
|
||||
if g.install != 'no':
|
||||
l.extend([ p for p in g.mandatory ])
|
||||
l.extend([ p[0] for p in g.optional if p[1] == 'yes' ])
|
||||
if g.selection == 'manual':
|
||||
l.extend([ p[0] for p in g.optional if p[1] == 'yes' ])
|
||||
else:
|
||||
l.extend([ p[0] for p in g.optional ])
|
||||
|
||||
set1 = set(l)
|
||||
set2 = set(set1)
|
||||
|
||||
@@ -8,6 +8,8 @@ import ri_cmd
|
||||
import ri_widget
|
||||
|
||||
var_dict={}
|
||||
# language should be all lower case letters
|
||||
language='english'
|
||||
|
||||
def init(base_w):
|
||||
''' base_w - base widget instance '''
|
||||
@@ -17,7 +19,9 @@ def init(base_w):
|
||||
# grid management for root_window
|
||||
root_window.columnconfigure(0, weight=1)
|
||||
root_window.rowconfigure(0, weight=1)
|
||||
|
||||
root_window.geometry("%sx%s+0+0" %(root_window.winfo_screenwidth(),root_window.winfo_screenheight()))
|
||||
root_window.title(translate_text('Linx'))
|
||||
|
||||
# bind WM_DELETE_WINDOW
|
||||
root_window.protocol("WM_DELETE_WINDOW", root_window.quit)
|
||||
@@ -28,6 +32,12 @@ def quit():
|
||||
''' exit root window '''
|
||||
root_window.quit()
|
||||
|
||||
def set_step_info(s):
|
||||
''' set some information in base widget '''
|
||||
# set step name which will be shown on base widget column 1 row 0
|
||||
title = translate_text(s)
|
||||
var_dict['main.step_name'].set(title)
|
||||
|
||||
def create_widget(w):
|
||||
''' w - widget instance '''
|
||||
|
||||
@@ -35,8 +45,7 @@ def create_widget(w):
|
||||
|
||||
# set step name
|
||||
if 'name' in dir(w):
|
||||
# set step name which will be shown on base widget column 1 row 0
|
||||
var_dict['main.step_name'].set(w.name)
|
||||
set_step_info(w.name)
|
||||
|
||||
import os.path
|
||||
|
||||
@@ -44,6 +53,14 @@ class MyImage:
|
||||
''' MyImage - a dummy class to hold Image variable '''
|
||||
count = 0
|
||||
|
||||
def translate_text(txt):
|
||||
''' multi-language support, translate t if needed '''
|
||||
key = txt.lower()
|
||||
if key in ri_widget.Text.dict.keys() and (txt[0] == '#' or language != 'english'):
|
||||
return getattr(ri_widget.Text.dict[key], language)
|
||||
else:
|
||||
return txt
|
||||
|
||||
def modify_attributes(attr_dict):
|
||||
''' modify values in attr_dict to suit Tk usage '''
|
||||
for a in attr_dict.keys():
|
||||
@@ -59,7 +76,9 @@ def modify_attributes(attr_dict):
|
||||
attr_dict[a] = getattr(sys.modules["ri_cmd"], attr_dict[a])
|
||||
elif a == "textvariable" or a == "listvariable" or a == 'variable':
|
||||
attr_dict[a] = var_dict[attr_dict[a]]
|
||||
|
||||
elif a == "text":
|
||||
attr_dict[a] = translate_text(attr_dict[a])
|
||||
|
||||
def create_widget_sub(w, p_win):
|
||||
'''
|
||||
w - widget instance
|
||||
@@ -143,7 +162,7 @@ def create_message_box(w):
|
||||
''' display MessageBox
|
||||
w - MessageBox instance'''
|
||||
disp = getattr(tkMessageBox, "show%s" %(w.tp))
|
||||
disp(w.title, w.message)
|
||||
disp(translate_text(w.title), translate_text(w.message))
|
||||
|
||||
def create_top_window(w):
|
||||
''' display TopWindow
|
||||
@@ -243,7 +262,9 @@ class SoftwarePackageWindow():
|
||||
win.columnconfigure(0, weight=1)
|
||||
win.rowconfigure(1, weight=1)
|
||||
win.rowconfigure(4, weight=1)
|
||||
Tkinter.Label(win, text='Mandatory').grid(column=0, row=0)
|
||||
|
||||
text_mdt = translate_text('Mandatory')
|
||||
Tkinter.Label(win, text=text_mdt).grid(column=0, row=0)
|
||||
cnv1 = Tkinter.Canvas(win)
|
||||
hs1 = Tkinter.Scrollbar(win, orient='horizontal')
|
||||
hs1.configure(command=cnv1.xview)
|
||||
@@ -265,9 +286,11 @@ class SoftwarePackageWindow():
|
||||
for i in range(len(self.group.mandatory)):
|
||||
Tkinter.Label(fr1, text=self.group.mandatory[i]).grid(column=i%5, row=i/5, sticky='NWES')
|
||||
|
||||
Tkinter.Label(win, text='Optional').grid(column=0, row=3)
|
||||
text_opt = translate_text('Optional')
|
||||
Tkinter.Label(win, text=text_opt).grid(column=0, row=3)
|
||||
self.selection = Tkinter.StringVar(value=self.group.selection)
|
||||
chk_sa = Tkinter.Checkbutton(win, text='Select all', command=self.select_all, variable=self.selection, onvalue='all', offvalue='manual')
|
||||
text_sal = translate_text('Select all')
|
||||
chk_sa = Tkinter.Checkbutton(win, text=text_sal, command=self.select_all, variable=self.selection, onvalue='all', offvalue='manual')
|
||||
chk_sa.grid(column=1, row=3)
|
||||
if self.group.selection == 'all':
|
||||
chk_sa.select()
|
||||
|
||||
@@ -197,7 +197,7 @@ def dependency_list_init():
|
||||
ri_dep.resolve_recursive_depending()
|
||||
ri_dep.construct_depended()
|
||||
dep_dict = ri_dep.get_extra_depending()
|
||||
l = [ k.ljust(15) + ': ' + ' '.join(dep_dict[k]) for k in dep_dict.keys()]
|
||||
l = [ k.ljust(20) + ': ' + ' '.join(dep_dict[k]) for k in dep_dict.keys()]
|
||||
display.var_dict['dependency.list'].set(value=tuple(l))
|
||||
|
||||
def service_construct(w):
|
||||
|
||||
@@ -169,6 +169,22 @@ class Sequence:
|
||||
Sequence.current_sequence.current_step += 1
|
||||
return Sequence.current_sequence.steps[Sequence.current_sequence.current_step]
|
||||
|
||||
class Text:
|
||||
''' implement text in interface.xml '''
|
||||
dict={}
|
||||
|
||||
def __init__(self, xml_node):
|
||||
for n in xml_node.childNodes:
|
||||
if n.nodeType == n.ELEMENT_NODE:
|
||||
if n.nodeName == 'English': self.english = n.firstChild.data
|
||||
elif n.nodeName == 'Chinese': self.chinese = n.firstChild.data
|
||||
|
||||
if 'key' in xml_node.attributes.keys():
|
||||
self.key = xml_node.attributes['key'].value
|
||||
else:
|
||||
self.key = self.english
|
||||
Text.dict[self.key.lower()] = self
|
||||
|
||||
def construct(xml_root):
|
||||
''' construct Widget's static members'''
|
||||
for n in xml_root.childNodes:
|
||||
@@ -177,6 +193,7 @@ def construct(xml_root):
|
||||
elif n.nodeName == "message_box": MessageBox(n)
|
||||
elif n.nodeName == "top_window": TopWindow(n)
|
||||
elif n.nodeName == "sequence": Sequence(n)
|
||||
elif n.nodeName == "text": Text(n)
|
||||
|
||||
def init_display(bw):
|
||||
''' base widget name'''
|
||||
|
||||
@@ -10,10 +10,10 @@ from xml.dom import minidom
|
||||
import os.path
|
||||
|
||||
def print_usages():
|
||||
print 'Usages: %s [-b|--begin step_name] [interface_xml_file] [install_xml_file]' %sys.argv[0]
|
||||
print 'Usages: %s [-b|--begin step_name] [-l|--language language] [interface_xml_file] [install_xml_file]' %sys.argv[0]
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "b:", ["begin=",])
|
||||
opts, args = getopt.getopt(sys.argv[1:], "b:l:", ["begin=","language="])
|
||||
except getopt.GetoptError:
|
||||
print_usages()
|
||||
sys.exit(1)
|
||||
@@ -22,6 +22,8 @@ begin_step=None
|
||||
for opt, arg in opts:
|
||||
if opt in ('-b', '--begin'):
|
||||
begin_step = arg
|
||||
elif opt in ('-l', '--language'):
|
||||
ri_tk.language = arg.lower()
|
||||
|
||||
if len(args) == 0:
|
||||
itf_xml = "../xml/interface_t.xml"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<install>
|
||||
<serial-number>123456789012</serial-number>
|
||||
<serial-number>123456789</serial-number>
|
||||
<partitions unit='sectors'>
|
||||
<partition device='sda1' start='63' id='83' size='195318207'/>
|
||||
<partition device='sda2' start='195318270' id='82' size='3903795'/>
|
||||
@@ -26,7 +26,7 @@
|
||||
<mount-point device='sdb4' directory='/' file-system='ext3' format='yes'/>
|
||||
<mount-point device='md0' directory='' file-system='' format='no'/>
|
||||
</mount-points>
|
||||
<network domain='' secondary_dns='' ip='' hostname='lizhi' mask='' primary_dns='' configuration='dynamic' gateway=''/>
|
||||
<network domain='' secondary_dns='' ip='172.16.0.108' hostname='lizhi' mask='' primary_dns='' configuration='static' gateway=''/>
|
||||
<groups>
|
||||
<group name='development' install='yes'>
|
||||
<description>
|
||||
@@ -85,7 +85,7 @@
|
||||
<package name='trac' install='no'/>
|
||||
</optional>
|
||||
</group>
|
||||
<group name='office' install='no'>
|
||||
<group name='office' install='yes'>
|
||||
<description>
|
||||
办公类包括 OpenOffice.org 等办公软件。
|
||||
办公类都是必选软件包,当选择安装该类后,必选包是默认安装的。
|
||||
@@ -94,18 +94,18 @@
|
||||
<package name='openoffice'/>
|
||||
</mandatory>
|
||||
</group>
|
||||
<group name='kde' install='no'>
|
||||
<group name='kde' install='yes'>
|
||||
<description>
|
||||
KDE是一种著名的自由图形工作环境,整个系统采用Qt程序库
|
||||
KDE桌面类都是可选软件包,可以自由选择安装。
|
||||
</description>
|
||||
<optional selection='all'>
|
||||
<package name='kde-i18n-zh_CN' install='no'/>
|
||||
<package name='kde-i18n-zh_CN' install='yes'/>
|
||||
<package name='kdeaccessibility' install='no'/>
|
||||
<package name='kdeaddons' install='no'/>
|
||||
<package name='kdeadmin' install='no'/>
|
||||
<package name='kdeartwork' install='no'/>
|
||||
<package name='kdebase' install='no'/>
|
||||
<package name='kdebase' install='yes'/>
|
||||
<package name='kdebindings' install='no'/>
|
||||
<package name='kdeedu' install='no'/>
|
||||
<package name='kdegames' install='no'/>
|
||||
@@ -121,7 +121,7 @@
|
||||
<package name='kdewebdev' install='no'/>
|
||||
</optional>
|
||||
</group>
|
||||
<group name='gui' install='no'>
|
||||
<group name='gui' install='yes'>
|
||||
<description>
|
||||
图形类包括 X11 相关的各种程序。
|
||||
图形类软件包分为必选包和可选包,当选择安装该类后,必选包是默认安装的,可选包可以自由选择安装。
|
||||
@@ -185,7 +185,7 @@
|
||||
<package name='xkeyboard-config'/>
|
||||
<package name='x11-fonts-chinese'/>
|
||||
</mandatory>
|
||||
<optional selection='manual'>
|
||||
<optional selection='all'>
|
||||
<package name='arts' install='no'/>
|
||||
<package name='atk' install='no'/>
|
||||
<package name='cairo' install='no'/>
|
||||
@@ -222,23 +222,23 @@
|
||||
<package name='xosview' install='no'/>
|
||||
</optional>
|
||||
</group>
|
||||
<group name='network_tools' install='no'>
|
||||
<group name='network_tools' install='yes'>
|
||||
<description>
|
||||
网络工具类包括 tcpdump 等网络工具。
|
||||
网络工具类都是可选软件包,可以自由选择安装。
|
||||
</description>
|
||||
<optional selection='manual'>
|
||||
<optional selection='all'>
|
||||
<package name='libpcap' install='no'/>
|
||||
<package name='tcpdump' install='no'/>
|
||||
<package name='wireshark' install='no'/>
|
||||
</optional>
|
||||
</group>
|
||||
<group name='vm' install='no'>
|
||||
<group name='vm' install='yes'>
|
||||
<description>
|
||||
通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统
|
||||
虚拟机类都是可选软件包,可以自由选择安装
|
||||
</description>
|
||||
<optional selection='manual'>
|
||||
<optional selection='all'>
|
||||
<package name='qemu-kvm' install='no'/>
|
||||
<package name='bridge-utils' install='yes'/>
|
||||
<package name='uml-utilities' install='yes'/>
|
||||
@@ -335,13 +335,13 @@
|
||||
<package name='which'/>
|
||||
<package name='zlib'/>
|
||||
</mandatory>
|
||||
<optional selection='manual'>
|
||||
<package name='adjtimex' install='no'/>
|
||||
<optional selection='all'>
|
||||
<package name='adjtimex' install='yes'/>
|
||||
<package name='at' install='no'/>
|
||||
<package name='audit' install='no'/>
|
||||
<package name='bc' install='no'/>
|
||||
<package name='beecrypt' install='no'/>
|
||||
<package name='cdrtools' install='no'/>
|
||||
<package name='cdrtools' install='yes'/>
|
||||
<package name='cpufrequtils' install='no'/>
|
||||
<package name='dialog' install='no'/>
|
||||
<package name='dosfstools' install='no'/>
|
||||
@@ -378,15 +378,15 @@
|
||||
<package name='texi2html' install='no'/>
|
||||
<package name='wget' install='no'/>
|
||||
<package name='xfsprogs' install='no'/>
|
||||
<package name='zip' install='no'/>
|
||||
<package name='zip' install='yes'/>
|
||||
</optional>
|
||||
</group>
|
||||
<group name='network_service' install='no'>
|
||||
<group name='network_service' install='yes'>
|
||||
<description>
|
||||
网络服务类包括各种网络服务包。
|
||||
网络服务类都是可选软件包,可以自由选择安装。
|
||||
</description>
|
||||
<optional selection='manual'>
|
||||
<optional selection='all'>
|
||||
<package name='apache' install='no'/>
|
||||
<package name='apr' install='no'/>
|
||||
<package name='bind' install='no'/>
|
||||
@@ -420,7 +420,7 @@
|
||||
<package name='webfs' install='no'/>
|
||||
</optional>
|
||||
</group>
|
||||
<group name='internet' install='no'>
|
||||
<group name='internet' install='yes'>
|
||||
<description>
|
||||
因特网类包括万维网浏览器 Firefox 等。
|
||||
因特网类软件包都是必选包,当选择安装该类后,必选包是默认安装的。
|
||||
@@ -430,17 +430,17 @@
|
||||
<package name='dbus-glib-1'/>
|
||||
<package name='firefox'/>
|
||||
</mandatory>
|
||||
<optional selection='manual'>
|
||||
<optional selection='all'>
|
||||
<package name='amsn' install='no'/>
|
||||
<package name='thunderbird' install='no'/>
|
||||
</optional>
|
||||
</group>
|
||||
<group name='multi-media' install='no'>
|
||||
<group name='multi-media' install='yes'>
|
||||
<description>
|
||||
多媒体类包括各种媒体库。
|
||||
多媒体类都是可选软件包,可以自由选择安装。
|
||||
</description>
|
||||
<optional selection='manual'>
|
||||
<optional selection='all'>
|
||||
<package name='alsa-lib' install='no'/>
|
||||
<package name='alsa-oss' install='no'/>
|
||||
<package name='alsa-utils' install='no'/>
|
||||
@@ -460,9 +460,9 @@
|
||||
</group>
|
||||
</groups>
|
||||
<services>
|
||||
<service start='disable' package='netkit-rsh' script='inetd' name='rsh' number='S310'/>
|
||||
<service start='no' package='netkit-rsh' script='inetd' name='rsh' number='S310'/>
|
||||
<service start='yes' package='openssh' script='sshd' name='ssh' number='S205'/>
|
||||
<service start='disable' package='proftpd' script='proftpd' name='ftpd' number='S280'/>
|
||||
<service start='disable' package='netkit-telnetd' script='inetd' name='telnet' number='S310'/>
|
||||
<service start='no' package='proftpd' script='proftpd' name='ftpd' number='S280'/>
|
||||
<service start='no' package='netkit-telnetd' script='inetd' name='telnet' number='S310'/>
|
||||
</services>
|
||||
</install>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<ref name='top_window'/>
|
||||
</zeroOrMore>
|
||||
<zeroOrMore>
|
||||
<ref name="message"/>
|
||||
<ref name="text"/>
|
||||
</zeroOrMore>
|
||||
<oneOrMore>
|
||||
<ref name="sequence"/>
|
||||
@@ -235,8 +235,8 @@ on special cases -->
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name="message">
|
||||
<element name="message">
|
||||
<define name="text">
|
||||
<element name="text">
|
||||
<optional>
|
||||
<attribute name="key"/>
|
||||
</optional>
|
||||
|
||||
@@ -99,7 +99,7 @@ row 4 | |
|
||||
|____________________________________________________________|
|
||||
-->
|
||||
|
||||
<widget type='Frame' name='serial_no'>
|
||||
<widget type='Frame' name='serial number'>
|
||||
<grid_management rows='1' columns='1'>
|
||||
<configure row='0' weight='1'/>
|
||||
<configure column='0' weight='1'/>
|
||||
@@ -161,7 +161,7 @@ row 4 | |
|
||||
<widget type='Frame'>
|
||||
<grid_location row='0' column='0' sticky='WS' pady='10'/>
|
||||
<widget type='Label'>
|
||||
<widget_attribute text='device:'/>
|
||||
<widget_attribute text='device'/>
|
||||
<grid_location row='0' column='0' />
|
||||
</widget>
|
||||
<widget type='Listbox'>
|
||||
@@ -405,7 +405,7 @@ row 4 | |
|
||||
|________________________________________________________________________|
|
||||
-->
|
||||
|
||||
<widget type='Frame' name='software-group'>
|
||||
<widget type='Frame' name='software group'>
|
||||
<grid_management rows='4' columns='1'>
|
||||
<configure row='1' weight='1'/>
|
||||
<configure row='3' weight='1'/>
|
||||
@@ -607,59 +607,229 @@ row 4 | |
|
||||
</widget>
|
||||
</top_window>
|
||||
|
||||
<message key='#Copyright'>
|
||||
<text key='#Copyright'>
|
||||
<English>Copyright 2001-2010 Linx Technology Co., Ltd.</English>
|
||||
<Chinese>北京凝思科技有限公司 版权所有</Chinese>
|
||||
</message>
|
||||
</text>
|
||||
|
||||
<message key='#first-step'>
|
||||
<text key='#first-step'>
|
||||
<English>You have already been in the first step.</English>
|
||||
<Chinese>您已到达第一步。</Chinese>
|
||||
</message>
|
||||
</text>
|
||||
|
||||
<message key='#last-step'>
|
||||
<text key='#last-step'>
|
||||
<English>You have already been in the last step.</English>
|
||||
<Chinese>您已到达最后一步。</Chinese>
|
||||
</message>
|
||||
</text>
|
||||
|
||||
<message key='#NCM'>
|
||||
<text key='#NCM'>
|
||||
<English>Network Configuration Management:</English>
|
||||
<Chinese>网络配置方式</Chinese>
|
||||
</message>
|
||||
</text>
|
||||
|
||||
<message key='#os-name'>
|
||||
<text key='#os-name'>
|
||||
<English>Rocky 4.2</English>
|
||||
<Chinese>磐石 4.2</Chinese>
|
||||
</message>
|
||||
</text>
|
||||
|
||||
<message key='#Welcome'>
|
||||
<text key='#Welcome'>
|
||||
<English>Welcome to use
|
||||
Linx Rocky Secure Operating System v4.2</English>
|
||||
<Chinese>欢迎使用
|
||||
凝思磐石安全操作系统 v4.2</Chinese>
|
||||
</message>
|
||||
</text>
|
||||
|
||||
<message>
|
||||
<text>
|
||||
<English>Cancel</English>
|
||||
<Chinese>取消</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Copyright</English>
|
||||
<Chinese>版权</Chinese>
|
||||
</message>
|
||||
</text>
|
||||
|
||||
<message>
|
||||
<text>
|
||||
<English>delete</English>
|
||||
<Chinese>删除</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>dependency</English>
|
||||
<Chinese>软件依赖</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Device</English>
|
||||
<Chinese>设备</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Directory</English>
|
||||
<Chinese>目录</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Domain name</English>
|
||||
<Chinese>域名</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>dynamic</English>
|
||||
<Chinese>动态</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>edit</English>
|
||||
<Chinese>编辑</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Filesystem</English>
|
||||
<Chinese>文件系统</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Format</English>
|
||||
<Chinese>格式化</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Gateway</English>
|
||||
<Chinese>网关</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>host name</English>
|
||||
<Chinese>主机名</Chinese>
|
||||
</message>
|
||||
</text>
|
||||
|
||||
<message>
|
||||
<text>
|
||||
<English>install sequence</English>
|
||||
<Chinese>安装顺序</Chinese>
|
||||
</message>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>IP</English>
|
||||
<Chinese>IP</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Linx</English>
|
||||
<Chinese>凝思</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Mandatory</English>
|
||||
<Chinese>必选</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>mount</English>
|
||||
<Chinese>挂载硬盘</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>new</English>
|
||||
<Chinese>新建</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Not-Format</English>
|
||||
<Chinese>不格式化</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>network</English>
|
||||
<Chinese>网络</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>next</English>
|
||||
<Chinese>下一步</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>OK</English>
|
||||
<Chinese>确定</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Optional</English>
|
||||
<Chinese>可选</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>previous</English>
|
||||
<Chinese>上一步</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Primary DNS</English>
|
||||
<Chinese>首选DNS</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>quit</English>
|
||||
<Chinese>退出</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>reset</English>
|
||||
<Chinese>重置</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Secondary DNS</English>
|
||||
<Chinese>备用DNS</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Select all</English>
|
||||
<Chinese>全选</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>serial number</English>
|
||||
<Chinese>序列号</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>service</English>
|
||||
<Chinese>服务</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Size</English>
|
||||
<Chinese>大小</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>software group</English>
|
||||
<Chinese>软件组</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>Subnet mask</English>
|
||||
<Chinese>子网掩码</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>static</English>
|
||||
<Chinese>静态</Chinese>
|
||||
</text>
|
||||
|
||||
<text>
|
||||
<English>welcome</English>
|
||||
<Chinese>欢迎</Chinese>
|
||||
</text>
|
||||
|
||||
<sequence name='main'>
|
||||
<widget name='welcome'/>
|
||||
<widget name='serial_no'/>
|
||||
<widget name='serial number'/>
|
||||
<widget name='mount'/>
|
||||
<widget name='network'/>
|
||||
<widget name='software-group'/>
|
||||
<widget name='software group'/>
|
||||
<widget name='dependency'/>
|
||||
<widget name='service'/>
|
||||
</sequence>
|
||||
|
||||
Reference in New Issue
Block a user