公司新闻

Press Releases

适用于HTML5应用程序的JavaScripti18n库(第2部分)

作者:瑞科翻译 时间:2023-09-04 16:14:09 来源:瑞科翻译官网 标签:

适用于HTML JavaScripttt应用程序 i18n库(第二部分) 软件翻译 这是描述一种方法的第二部分,可用于为Web应用程序(特别是客户端密集型Web应用程序)提供国际化和本地化支持。本系列的最初目的是从现代网络应用程序的角度来看待主题,但没有理由将其应用于传统(非应用程序)和移动网站。 翻译软件可能需要大量的工作,其过程需要提出几个不同的问题,如: 如何在我的应用程序中支持多种语言? 支持多种语言需要哪些变化? 我应该从什么语言开始? 本博客讨论了一些基本概念,并在实践中提供了一些概念示例。虽然我不打算涵盖每一个细节,但我希望它能让你理解所涉及的内容,让你开始自己的工作。 HTML5国际化 一些基本术语 在创建多语言应用程序之前,有几件基本的事情需要理解。让我们就一些基本定义达成一致,因为这些术语经常被交换使用。 国际化(i18n) - 在处理不同语言、字符集、货币、提交表单数据、搜索功能等过程中,启用应用程序(如网站后端)。 本地化(L10n) - 它涉及将应用程序(通常是前端)翻译成不同的语言,以确保所有内容(文本和图形)以准确和正确的文化方式进行翻译。它还确保选择合适的目标受众区域,如巴西葡萄牙语与葡萄牙语大陆语言进行比较。 全球化 - 国际化与本土化的结合 语言 - 比如英语(ISO代码)“en”),西班牙语(ISO代码)“es”)等。 地区 - 加拿大。请注意法语和加拿大法语的区别,比如“fr-FR”与“fr-CA” 使用简单的i18n JavaScript库 - 继续 资源文件命名法 理想情况下,基于JSON的资源文件可以用于在Web应用程序的UI中显示静态信息、动态信息、对话框等。 本系列第一部分介绍的基于JSON的资源文件,请考虑以下示例: 英文版(strings.en-US.json) 西班牙语版本(strings.es-AR.json) { "btnSubmit__value" : "Hello English", "btnSubmit__title" : "Hello English", "registrationForm" : { "firstName" : "First Name", "lastName" : "Last Name", "register__value": "Register", "register_title" : "Click to Register" }, "loggedIn": { "welcomeMessage" : "Welcome %s %s!" } } { "btnSubmit__value" : "Hola Inglés", "btnSubmit__title" : "Hola Inglés", "registrationForm" : { "firstName" : "Nombre", "lastName" : "Apellido", "register__value": "Registrarse", "register_title" : "Haga clic para registrarse" }, "loggedIn": { "welcomeMessage" : "Bienvenido %s %s!" } } 下表描述了i18n库中资源字符串的类型及其使用方法: 条目 资源字符串类型 用法 btnSubmit__value 属性 i18n._("btnSubmit__value") 报名表格 组 None. Exists for grouping related items. 名字 串 i18n._("registrationForm.firstName") welcomeMessage 格式化字符串 var name = $('#txtLastName').val() ', ' $('#firstName').val(); i18n._("loggedIn.welcomeMessage", name); 属性资源类型 在您的Web应用程序用户界面(UI)一旦加载保持不变(即静态),许多组件将包含文本(需要翻译)。属性资源类型提供了一种方法,可以帮助在应用程序启动时加载翻译文本项(如按钮文本、标签、标题列表等)。在应用程序启动时,属性资源类型提供了一种帮助加载翻译文本项(如按钮文本、标签、列标题等)的方法。 从客户端标记,您只需添加属性“data-res”,并将相应的资源条目作为键,库将自动加载翻译文本作为DOM元素的内部html。 但是,如果资源键条目遵循以下命名协议: __ 库将翻译后的文本加载到属性名称中,而不是默认使用“innerHTML”属性。 组资源类型 这类项目用于组合类似上下文的项目。这允许我们避免类似的事情“关键”引用的冲突。例如,您的Web应用程序可能对给定字符串有多种用法(例如key)->“all”)。虽然这个键在英语中只有一个单词,但在另一种语言中,根据使用这个词的上下文可能有多个选项(例如西班牙语)“todos”,“todas”)。 就像男人或女人是人类和大多数动物的固有特征一样,性别也是某些语言中名词的固有特征。根据使用单词的上下文,使用男性和女性的形式在语言上可能更准确,反之亦然。 因此,我们可以使用Group资源类型来创建上下文,并在每个不同的上下文中重用相同的键。这样,我们就可以获得应用程序支持的每种不同语言的相应翻译。 字符串/格式化字符串资源类型 这就是JavaScriptttpt i18n库根据用户的语言首选自动加载本地化包(即包)。在你开始渲染各种语言版本之前,你必须使用它们“字典”初始化库(基本上是映射键到其翻译的属性列表)。 初始化过程完成后,您可以使用它的键名“查找”字符串资源,如下所示: var fName = i18n._("registrationForm.firstName"); var lName = i18n._("registrationForm.lastName"); 字符串资源本质上是静态的,并将始终产生与当前活动语言相同的结果。 另一方面,Formatted String资源是动态的,允许您在运行过程中包含参数,实际上允许您创建自定义字符串值。 另一方面,Formatted String资源是动态的,允许您在运行过程中包含参数,这实际上允许您创建自定义字符串值。除了方法呼叫中包含参数外,格式化字符串资源与传统字符串资源相同。见下面的例子: var fullName = i18n._("loggedIn.welcomeMessage", fName, lName); 本版本使用三个指定对象的字符串来替换目标指定字符串中的任何格式项。查找目标特定字符串的键“loggedIn.welcomeMessage”结果表示。这个键生成结果“Welcome%s%s!”。“%s”表示参数将由参数组成“fName”和“lName”格式项的值替换。

上海瑞科翻译公司是一家具有二十年行业经验的专业翻译公司公司位居“亚太地区语言服务提供商前列是一家通过iso质量管理体系认证的知名的翻译公司.专注于文档翻译、网站翻译,认证翻译、本地化翻译、口译、软件本地化翻译、桌面排版(dtp)、母语审校、创译、语言资产管理以及翻译技术研发和培训等专业语言服务是专业的英语翻译公司,瑞科上海翻译公司可以提供中文、英语、日语、韩语、德语、法语、泰语、俄语等全球多语种的翻译,瑞科翻译机构是中国翻译协会(tac)理事单位,美国翻译协会(ata)会员,全球化与本地化协会(gala)会员欧洲语言行业协会会员上海瑞科翻译公司翻译服务热线:021-63760188