CN113641433A - 基于i18n技术的前端国际化多语言文件的多语言页面转换方法和单元 - Google Patents
基于i18n技术的前端国际化多语言文件的多语言页面转换方法和单元 Download PDFInfo
- Publication number
- CN113641433A CN113641433A CN202110914559.5A CN202110914559A CN113641433A CN 113641433 A CN113641433 A CN 113641433A CN 202110914559 A CN202110914559 A CN 202110914559A CN 113641433 A CN113641433 A CN 113641433A
- Authority
- CN
- China
- Prior art keywords
- language
- configuration file
- target language
- page
- display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 22
- 238000005516 engineering process Methods 0.000 title claims abstract description 17
- 238000012986 modification Methods 0.000 claims abstract description 21
- 230000004048 modification Effects 0.000 claims abstract description 21
- 238000004891 communication Methods 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明属于通信技术领域,其公开了一种基于i18n技术的前端国际化多语言文件的多语言页面转换方法,所述方法具体为:步骤1:获取目标语言配置文件并运行;步骤2:生成用户所选择的节点对应的显示插件并以弹窗的形式显示在显示页面上;步骤3:用户对弹窗中的目标语种语言内容进行修改;步骤4:重复步骤2‑3,并保存目标语言配置文件。该方法额外采用了显示插件的方式形成弹窗,弹窗的数据来源于节点的语言内容,并通过操作人员在弹窗上的修改自动的对配置文件进行更新、保存、显示,操作人员可直观的看到页面修改是否符合预期,同时也降低了代码修改难度,同时,本发明还公开了基于该方法的单元。
Description
技术领域
本发明涉及通信技术领域,具体为一种基于i18n技术的前端国际化多语言文件的多语言页面转换方法和单元。
背景技术
当前web开发过程中,因为国际业务的需求,往往一个网站需要一套代码支持多种语言展示,用户可以通过切换按钮切换页面显示的语言。通常采用的i18n这个框架来实现前端的国际化。i18n框架是“国际化”的简称。对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。
“https://www.jianshu.com/p/ea93efef5155”中描述了i18n实现前端国际化的实例
这是当前前端国际化中翻译最准确的也是最常用的框架。此方案需要根据不同的语言配置多套语言配置文件。页面中的每个字段都要有对应的key进行配置。当项目规模越来越大,配置文件就会变的越来越大,变的不好维护和管理,录入多语言繁琐不直观,导致新的语言下样式错乱等问题。
CN201911272667.6公开了一种多语言配置文件的生成方法、页面显示方法、装置及终端,属于计算机和互联网技术领域,所述方法包括:获取应用程序的配置多语言表;获取应用程序的页面多语言表;根据配置多语言表和页面多语言表,生成多语言总表;根据多语言总表生成应用程序的多语言配置文件。实现了一种可以自动生成多语言配置文件的方法,提升了多语言配置文件的生成效率,以及多语言配置文件的准确性。并且,本申请实施例区分动态文本和静态文本,在用户界面中动态文本发生变化时,只需要对该动态文本进行相应地处理,提升了处理速度,进一步提升了多语言配置文件的生成效率。
该方法主要描述的是如何对动态文本、静态文本进行修改,如何针对各节点形成配置附表达到对配置文件的生成。
先现实的应用环境中,我们要对页面上的某一字段的修改都要进行配置文件的底层改动,对于操作人员来说,工作量比较大。
本案解决的技术问题是:如何简化文件语言文本的修改流程,降低开发难度。
发明内容
本发明的目的在于提供一种基于i18n技术的前端国际化多语言文件的多语言页面转换方法,该方法额外采用了显示插件的方式形成弹窗,弹窗的数据来源于节点的语言内容,并通过操作人员在弹窗上的修改自动的对配置文件进行更新、保存、显示,操作人员可直观的看到页面修改是否符合预期,同时也降低了代码修改难度,同时,本发明还公开了基于该方法的单元。
为实现上述目的,本发明提供如下技术方案:一种基于i18n技术的前端国际化多语言文件的多语言页面转换方法,所述方法具体为:
步骤1:根据用户的语种选择,获取目标语言配置文件并运行,生成按照目标语种进行显示的显示页面;所述目标语言配置文件中包含了页面上的文本所对应的多个节点和节点对应的目标语种语言内容;
步骤2:根据用户在显示页面上的选择的节点以及该节点对应的目标语种语言内容,生成用户所选择的节点对应的显示插件并以弹窗的形式显示在显示页面上;所述显示插件显示目标语种语言内容;
步骤3:用户对弹窗中的目标语种语言内容进行修改,在目标语言配置文件中采用修改后的目标语种语言内容替换修改前的目标语种语言内容并保存和刷新显示页面;
步骤4:如果用户要对页面上的多个节点进行修改,则重复步骤2-3,并保存目标语言配置文件。
在上述的基于i18n技术的前端国际化多语言文件的多语言页面转换方法中,所述目标语言配置文件通过以下步骤得到:
步骤10:读取源多语言配置文件,该源多语言配置文件包含了页面上的文本所对应的多个节点和节点对应的基准语言内容;
步骤11:运行多语言配置文件,生成显示页面;
步骤12:根据用户的语种选择,将源多语言配置文件中的基准语言内容转换为目标语种语言内容,得到目标语言配置文件。
在上述的基于i18n技术的前端国际化多语言文件的多语言页面转换方法中,所述步骤2中的弹窗中显示基准语言内容、目标语种语言内容。
在上述的基于i18n技术的前端国际化多语言文件的多语言页面转换方法中,所述步骤2中用户可同时选择一个或多个节点;
若选择为多个节点,则弹窗中将多个节点对应的目标语种语言内容予以显示。
此外,本发明还公开了一种基于i18n技术的前端国际化多语言文件的多语言页面转换单元,包括:
目标语言配置文件模块:用于根据用户的语种选择,获取目标语言配置文件并运行,生成按照目标语种进行显示的显示页面;所述目标语言配置文件中包含了页面上的文本所对应的多个节点和节点对应的目标语种语言内容;
插件生成模块:用于根据用户在显示页面上的选择的节点以及该节点对应的目标语种语言内容,生成用户所选择的节点对应的显示插件并以弹窗的形式显示在显示页面上;所述显示插件显示目标语种语言内容;
更新模块:用于当用户对弹窗中的目标语种语言内容进行修改后,在目标语言配置文件中采用修改后的目标语种语言内容替换修改前的目标语种语言内容并保存和刷新显示页面。
在上述的基于i18n技术的前端国际化多语言文件的多语言页面转换单元中,所述目标语言配置文件模块包括如下子模块:
源多语言配置文件运行子模块:用于读取和运行源多语言配置文件并生成显示页面,该源多语言配置文件包含了页面上的文本所对应的多个节点和节点对应的基准语言内容;
配置文件转换子模块:根据用户的语种选择,将源多语言配置文件中的基准语言内容转换为目标语种语言内容,得到目标语言配置文件;
目标语言配置文件运行子模块:运行目标语言配置文件生成显示页面。
与现有技术相比,本发明的有益效果是:
本方案采用了显示插件的方式形成弹窗,弹窗的数据来源于节点的语言内容,并通过操作人员在弹窗上的修改自动的对配置文件进行更新、保存、显示,操作人员可直观的看到页面修改是否符合预期,同时也降低了代码修改难度。解决前端多语言开发效率低下,多语言配置文件庞大不好维护、录入多语言时不能实时显示效果等问题。
附图说明
图1为本发明的实施例1的流程方框图;
图2为本发明的实施例1的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1,一种基于i18n技术的前端国际化多语言文件的多语言页面转换方法,所述方法具体为:
步骤1:根据用户的语种选择,获取目标语言配置文件并运行,生成按照目标语种进行显示的显示页面;所述目标语言配置文件中包含了页面上的文本所对应的多个节点和节点对应的目标语种语言内容;
目标语言配置文件通过以下步骤得到:
步骤10:读取源多语言配置文件,该源多语言配置文件包含了页面上的文本所对应的多个节点比如节点的编号和节点对应的基准语言内容;
源多语言配置文件一般为开发者的母语,例如,如果是中文,则该基准语言内容对应的为中文内容。
步骤11:运行多语言配置文件,生成显示页面;
在用户的显示器上对该显示页面进行显示,一般来说,开发者会预先开发好与显示页面适当匹配的中文内容,但是,在步骤12中,一旦实现语种转化如转化为英语,就很因为翻译简洁性欠缺的原因,在某一个条目中无法对英语进行完全显示。
步骤12:根据用户的语种选择,将源多语言配置文件中的基准语言内容转换为目标语种语言内容,得到目标语言配置文件。
将基准语言内容转换为目标语种语言内容基于翻译工具自动实现,在i18n框架下,可根据用户在显示页面上点击语种原则就可以实现基准语言内容转换为目标语种语言内容。
通过步骤1,用户可清楚的看到翻译后的语言在显示页面上各节点是否合适。针对不合适的节点进行后续操作。
步骤2:根据用户在显示页面上的选择的节点以及该节点对应的目标语种语言内容,生成用户所选择的节点对应的显示插件并以弹窗的形式显示在显示页面上;所述显示插件显示目标语种语言内容;
用户移动鼠标到具有文字显示的内容的位置进行点击,可激发显示插件的生成,即系统会产生一个插件生成指令,插件生成指令中含有该节点的信息,如节点的编号,根据鼠标点击的位置从多语言配置文件中获取该节点以及该节点对应的目标语种语言内容;然后再弹窗中将该目标语种语言内容予以显示。
作为另外一种优化,还会根据插件生成指令从源多语言配置文件中获取基准语言内容并在弹窗中予以显示。
这样用户可同时对比两种语言进行修改,避免还需要从源多语言配置文件找到原始的文意,这样更为清晰。
步骤3:用户对弹窗中的目标语种语言内容进行修改,在目标语言配置文件中采用修改后的目标语种语言内容替换修改前的目标语种语言内容并保存和刷新显示页面;
在一次操作中,可对一个节点进行选择,生成一个节点的弹窗,也可以同时选择多个节点,生成一个或多个弹窗,根据需要灵活的设计。
在实际应用中,我们会将选择的多个节点分别生成多个显示插件并生成多个弹窗。
步骤4:如果用户要对页面上的多个节点进行修改,则重复步骤2-3,并保存目标语言配置文件并显示。
本方案采用了显示插件的方式形成弹窗,弹窗的数据来源于节点的语言内容,并通过操作人员在弹窗上的修改自动的对配置文件进行更新、保存、显示,操作人员可直观的看到页面修改是否符合预期,同时也降低了代码修改难度。解决前端多语言开发效率低下,多语言配置文件庞大不好维护、录入多语言时不能实时显示效果等问题。
实施例2
如图2,一种基于i18n技术的前端国际化多语言文件的多语言页面转换单元,包括:
目标语言配置文件模块1:用于根据用户的语种选择,获取目标语言配置文件并运行,生成按照目标语种进行显示的显示页面;所述目标语言配置文件中包含了页面上的文本所对应的多个节点和节点对应的目标语种语言内容;
所述目标语言配置文件模块包括如下子模块:
源多语言配置文件运行子模块11:用于读取和运行源多语言配置文件并生成显示页面,该源多语言配置文件包含了页面上的文本所对应的多个节点和节点对应的基准语言内容;
配置文件转换子模块12:根据用户的语种选择,将源多语言配置文件中的基准语言内容转换为目标语种语言内容,得到目标语言配置文件;
目标语言配置文件运行子模块13:运行目标语言配置文件生成显示页面。
插件生成模块2:用于根据用户在显示页面上的选择的节点以及该节点对应的目标语种语言内容,生成用户所选择的节点对应的显示插件并以弹窗的形式显示在显示页面上;所述显示插件显示目标语种语言内容;
更新模块3:用于当用户对弹窗中的目标语种语言内容进行修改后,在目标语言配置文件中采用修改后的目标语种语言内容替换修改前的目标语种语言内容并保存和刷新显示页面。
在运行过程中,源多语言配置文件运行子模块运行源多语言配置文件,生成按照例如中文进行显示的显示页面;
当用户点击显示页面上的语言选择按钮并选择英语时,配置文件转换子模块将基准语言内容转换为以英语表示的目标语种语言内容;
目标语言配置文件运行子模块生成该目标语言配置文件对应的显示页面;
当用户点击页面上任何节点时,插件生成模块生成该节点对应的显示插件,以弹窗的形式展示,所述显示插件显示目标语种语言内容;
当用户对弹窗中的目标语种语言内容进行修改后,更新模块在目标语言配置文件中采用修改后的目标语种语言内容替换修改前的目标语种语言内容并保存和刷新显示页面。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (6)
1.一种基于i18n技术的前端国际化多语言文件的多语言页面转换方法,其特征在于,所述方法具体为:
步骤1:根据用户的语种选择,获取目标语言配置文件并运行,生成按照目标语种进行显示的显示页面;所述目标语言配置文件中包含了页面上的文本所对应的多个节点和节点对应的目标语种语言内容;
步骤2:根据用户在显示页面上的选择的节点以及该节点对应的目标语种语言内容,生成用户所选择的节点对应的显示插件并以弹窗的形式显示在显示页面上;所述显示插件显示目标语种语言内容;
步骤3:用户对弹窗中的目标语种语言内容进行修改,在目标语言配置文件中采用修改后的目标语种语言内容替换修改前的目标语种语言内容并保存和刷新显示页面;
步骤4:如果用户要对页面上的多个节点进行修改,则重复步骤2-3,并保存目标语言配置文件。
2.根据权利要求1所述的基于i18n技术的前端国际化多语言文件的多语言页面转换方法,其特征在于,所述目标语言配置文件通过以下步骤得到:
步骤10:读取源多语言配置文件,该源多语言配置文件包含了页面上的文本所对应的多个节点和节点对应的基准语言内容;
步骤11:运行多语言配置文件,生成显示页面;
步骤12:根据用户的语种选择,将源多语言配置文件中的基准语言内容转换为目标语种语言内容,得到目标语言配置文件。
3.根据权利要求2所述的基于i18n技术的前端国际化多语言文件的多语言页面转换方法,其特征在于,所述步骤2中的弹窗中显示基准语言内容、目标语种语言内容。
4.根据权利要求1所述的基于i18n技术的前端国际化多语言文件的多语言页面转换方法,其特征在于,所述步骤2中用户可同时选择一个或多个节点;
若选择为多个节点,则弹窗中将多个节点对应的目标语种语言内容予以显示。
5.一种基于i18n技术的前端国际化多语言文件的多语言页面转换单元,其特征在于,包括:
目标语言配置文件模块:用于根据用户的语种选择,获取目标语言配置文件并运行,生成按照目标语种进行显示的显示页面;所述目标语言配置文件中包含了页面上的文本所对应的多个节点和节点对应的目标语种语言内容;
插件生成模块:用于根据用户在显示页面上的选择的节点以及该节点对应的目标语种语言内容,生成用户所选择的节点对应的显示插件并以弹窗的形式显示在显示页面上;所述显示插件显示目标语种语言内容;
更新模块:用于当用户对弹窗中的目标语种语言内容进行修改后,在目标语言配置文件中采用修改后的目标语种语言内容替换修改前的目标语种语言内容并保存和刷新显示页面。
6.根据权利要求5所述的基于i18n技术的前端国际化多语言文件的多语言页面转换单元,其特征在于,所述目标语言配置文件模块包括如下子模块:
源多语言配置文件运行子模块:用于读取和运行源多语言配置文件并生成显示页面,该源多语言配置文件包含了页面上的文本所对应的多个节点和节点对应的基准语言内容;
配置文件转换子模块:根据用户的语种选择,将源多语言配置文件中的基准语言内容转换为目标语种语言内容,得到目标语言配置文件;
目标语言配置文件运行子模块:运行目标语言配置文件生成显示页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110914559.5A CN113641433A (zh) | 2021-08-10 | 2021-08-10 | 基于i18n技术的前端国际化多语言文件的多语言页面转换方法和单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110914559.5A CN113641433A (zh) | 2021-08-10 | 2021-08-10 | 基于i18n技术的前端国际化多语言文件的多语言页面转换方法和单元 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113641433A true CN113641433A (zh) | 2021-11-12 |
Family
ID=78420662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110914559.5A Pending CN113641433A (zh) | 2021-08-10 | 2021-08-10 | 基于i18n技术的前端国际化多语言文件的多语言页面转换方法和单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641433A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020194A (zh) * | 2021-11-25 | 2022-02-08 | 浙江太美医疗科技股份有限公司 | 显示数据的修改方法、装置、计算机设备和介质 |
CN114356480A (zh) * | 2021-12-28 | 2022-04-15 | 数数信息科技(上海)有限公司 | 一种基于figma的前端国际化多语言转换方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280219A (zh) * | 2018-02-07 | 2018-07-13 | 深圳壹账通智能科技有限公司 | 文本翻译方法、装置、计算机设备和存储介质 |
CN108334526A (zh) * | 2017-01-20 | 2018-07-27 | 北京搜狗科技发展有限公司 | 搜索结果项的展示方法和装置 |
CN110969184A (zh) * | 2018-09-28 | 2020-04-07 | 甲骨文国际公司 | 使用迭代人工智能通过通信决策树的有向轨迹 |
CN111857903A (zh) * | 2020-04-22 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 显示页面的处理方法、装置、设备以及存储介质 |
-
2021
- 2021-08-10 CN CN202110914559.5A patent/CN113641433A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334526A (zh) * | 2017-01-20 | 2018-07-27 | 北京搜狗科技发展有限公司 | 搜索结果项的展示方法和装置 |
CN108280219A (zh) * | 2018-02-07 | 2018-07-13 | 深圳壹账通智能科技有限公司 | 文本翻译方法、装置、计算机设备和存储介质 |
CN110969184A (zh) * | 2018-09-28 | 2020-04-07 | 甲骨文国际公司 | 使用迭代人工智能通过通信决策树的有向轨迹 |
CN111857903A (zh) * | 2020-04-22 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 显示页面的处理方法、装置、设备以及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020194A (zh) * | 2021-11-25 | 2022-02-08 | 浙江太美医疗科技股份有限公司 | 显示数据的修改方法、装置、计算机设备和介质 |
CN114356480A (zh) * | 2021-12-28 | 2022-04-15 | 数数信息科技(上海)有限公司 | 一种基于figma的前端国际化多语言转换方法及系统 |
CN114356480B (zh) * | 2021-12-28 | 2023-11-07 | 数数信息科技(上海)有限公司 | 一种基于figma的前端国际化多语言转换方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096277B (zh) | 一种动态页面展示方法、装置、电子设备及存储介质 | |
CN111736840B (zh) | 小程序应用的编译方法、运行方法、存储介质及电子设备 | |
US7496230B2 (en) | System and method for automatic natural language translation of embedded text regions in images during information transfer | |
CN107402746B (zh) | 一种自动生成代码文件的方法及装置 | |
CN113139390A (zh) | 一种应用于代码字符串的语言转换方法和装置 | |
CN113641433A (zh) | 基于i18n技术的前端国际化多语言文件的多语言页面转换方法和单元 | |
US20150278190A1 (en) | Web server system, dictionary system, dictionary call method, screen control display method, and demonstration application generation method | |
CN106202066A (zh) | 网站的翻译方法和装置 | |
US11403078B2 (en) | Interface layout interference detection | |
CN109933751B (zh) | 图文绘制方法、装置、计算机可读存储介质和计算机设备 | |
CN102364437A (zh) | 多语言站点开发系统及其实现方法 | |
CN111639504A (zh) | 网页的多语言翻译方法和装置及设备 | |
CN106873971B (zh) | 一种flash应用的多语言展示方法和系统 | |
US10747943B2 (en) | Method, device, client apparatus, and electronic device for presenting webpages | |
CN114860233A (zh) | 一种页面生成方法、装置、设备、存储介质及产品 | |
CN111443979B (zh) | 文档处理方法、装置、计算机设备及存储介质 | |
CN112613287A (zh) | 一种数据列表的展示方法、装置、设备及存储介质 | |
CN116009863B (zh) | 前端页面渲染方法、设备及存储介质 | |
CN109445900B (zh) | 用于图片显示的翻译方法和装置 | |
CN111198738A (zh) | 移动端页面展示方法、装置及电子设备 | |
CN114222317B (zh) | 数据处理方法及装置、电子设备和存储介质 | |
CN114356291A (zh) | 基于配置文件生成表单的方法、装置、设备及介质 | |
CN112099791A (zh) | 设置浏览器中页面的样式的方法、装置、设备和存储介质 | |
CN112199335A (zh) | 一种操作日志的生成方法和生成系统 | |
CN112988154A (zh) | 基于JavaScript的可复用虚拟键盘实现方法及其应用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211112 |