国际化(i18n:代表“国际化”为“i”后跟18个字母,其次是“n”)是规划和实施产品和服务的过程,以便它们可以轻松地适应特定的当地语言和文化,这一过程称为本地化。国际化过程有时被称为翻译或本地化启用。
好吧,我有一个在 Next.js 中制作的项目,它利用 App Routing 和 Crystallize(GraphQL 驱动的 CMS),文件夹是英文的,但我需要集成国际化...
CLDR 版本 23 至 24 包括用于将 XML 数据转换为 JSON 的工具。有关这些工具的文档几乎不存在。我需要将所有 XML 数据转换为 JSON。怎么可以...
我正在将应用程序从 Struts 1.1 迁移到 Struts 2.3。 现有应用程序按以下方式使用旧框架中的 MessageResources。 我正在将应用程序从 Struts 1.1 迁移到 Struts 2.3。 现有应用程序按以下方式使用旧框架中的 MessageResources。 <message-resources key="label" parameter="com.abc.xyz.resources.MyLabelResources"/> <message-resources key="image" parameter="com.abc.xyz.resources.MyImageResources"/> 通过这种方式,可以分离出不同的资源文件,并且每当完成查找时,都会指定捆绑密钥,以便仅在该特定文件中进行搜索。 根据我对 Struts 2.2 框架的理解,我得出的结论是,我需要一个全局属性文件来为我完成工作。但是,我想为标签和图像创建多个全局属性文件,就像它在现有应用程序中的工作方式(上面)一样。 我不知道该怎么做。 如果您只想搜索特定文件,则可以使用 <s:i18n> 标签。 如果您的动作延伸,请使用 getText 方法 ActionSupport <s:i18n name="labels"> <s:property value="getText('some.label')" /> </s:i18n> 或使用 <s:text> 标签 <s:i18n name="labels"> <s:text name="some.label" /> </s:i18n> 但是您也可以将多个属性文件包含到自定义默认资源包中: <constant name="struts.custom.i18n.resources" value="images, labels" /> 使用<s:i18n>标签 获取资源包并将其放入值栈中。这允许文本标签访问来自任何捆绑包的消息,而不仅仅是与当前操作关联的捆绑包。 将资源包加载到值栈并使用它。 就像这个示例一样。 获取资源包并将其放入值栈中。这允许 用于访问来自任何包的消息的文本标记,而不仅仅是 与当前操作关联的捆绑包。 name* - the resource bundle's name (eg foo/bar/customBundle) 示例: <s:i18n name="myCustomBundle"> The i18n value for key aaa.bbb.ccc in myCustomBundle is <s:property value="text('aaa.bbb.ccc')" /> </s:i18n> <s:i18n name="some.package.bundle" > <s:text name="some.key" /> </s:i18n>
如何在 CostraintValidator 实现中确定用户区域设置以便选择验证例程?
如何国际化Bean Validations? 即测试前。使用 @ZipCode 约束的 ZipCode 检测当前用户正在使用给定语言(或给定的国家/地区地址)并调整验证...
Flutter:应用程序的区域设置不受其所有本地化代表的支持
您好,我正在尝试在 flutter 应用程序中添加 BottomNavigationBar 但当我运行项目时出现错误: 找不到支持 ka_GE 语言环境的 MaterialLocalizations 委托 这是我的应用程序委托...
使用 Transloco 处理 Angular monorepo
我们使用 Angular v15 monorepo,其中包含多个应用程序和库。 monorepo 和应用程序是使用 Angular CLI 文档中的说明创建的。图书馆是
sourceLocale 的官方描述非常简短: 使用 Angular CLI 设置编写组件模板和代码所用的源语言。 默认情况下,Angular 使用 en-US 作为...
我有一个 Vue.js 2.x Web 应用程序,我希望通过从 .vue 文件中提取所有字符串来将其国际化。 我的目标是识别可能需要翻译的字符串,即使有......
Intellij IDEA:如何使用不兼容的插件/I18n Ally for Vue I18n
我使用了插件 I18n Ally,它似乎是 IntellijIDEA 中 Vue i18n 集成唯一运行良好的插件。 但是,最新版本的 IntelliJ 不允许我安装 i18n Ally,是...
我在更改全日历 headerToolbar 的区域设置时遇到问题。 奇怪的是它适用于月份和日期名称,但不适用于标题。 代码如下所示: 让日历=新
通过 SO 和 Google 进行挖掘,我试图找出有关国际化电子邮件地址使用的当前状态。最佳答案来自 2021 年。根据我的研究,...
Rails 国际化 – 使用 Presenter 类进行惰性查找
4.1.4 解释了国际化 gem 的“惰性”查找。 举个例子: en.yml zh: 客户: 展示: 好客户:5星客户 应用程序/视图客户/显示....
我正在管理一个 Hugo 框架存储库,其中包含大约 5000 个 i18n 密钥。我怀疑这些密钥中大约 40% 要么未使用,要么重复。是否有任何软件包或工具可以自动化...
我已经做了一些研究,但没有找到如何本地化表单对象的属性。 这是我的表单对象模型的相关部分: 班级承诺 包括 ActiveMod...
ok,我设法将测试页的代码与 JMSTranslationBundle 结合起来在 twig 中切换语言,如下所示 好的,我设法将测试页的代码与 JMSTranslationBundle 结合起来在 twig 中切换语言 <li> <a href="{{ path("main", {"_locale": "en","name": name}) }}"> <img src="{{ asset('img/flags/gb.png') }}"></a></li> <li> <a href="{{ path("main", {"_locale": "de","name": name}) }}"> <img src="{{ asset('img/flags/de.png') }}"></a></li> 但这对path ("main")有用 我怎样才能让它动态地适用于我当前正在处理的页面/路线,包括所需的参数(在这种情况下"name": name?所以如果我当前在“关于我们”的英文页面上,我可以自动切换到德语页面关于我们,包括它的参数吗?或者我必须使用路径对每个树枝页面/模板进行硬编码吗? 这描述了一个与您正在寻找的扩展完全一样的扩展:http://blog.viison.com/post/15619033835/symfony2-twig-extension-switch-locale-current-route 可以通过注入 ScopeWideningInjectionException 来检索路由器和请求来修复 @service_container,而不是直接注入它们。 硬编码是一个坏主意,这是可以实现的,但据我所知还不是开箱即用的。为了提供具有相同路径和参数但针对不同语言环境的 url,我所做的就是创建一个自定义树枝扩展来执行此操作。 此扩展提供了一个新的 twig 函数,它将读取当前路由、当前参数、消除私有参数并为另一个语言环境生成相同的路由。这是有问题的树枝扩展: <?php namespace Acme\WebsiteBundle\Twig\Extension; use Symfony\Component\DependencyInjection\ContainerInterface; class LocalizeRouteExtension extends \Twig_Extension { protected $request; protected $router; public function __construct(ContainerInterface $container) { $this->request = $container->get('request'); $this->router = $container->get('router'); } public function getFunctions() { return array( 'localize_route' => new \Twig_Function_Method($this, 'executeLocalizeRoute', array()), ); } public function getName() { return 'localize_route_extension'; } /** * Execute the localize_route twig function. The function will return * a localized route of the current uri retrieved from the request object. * * The function will replace the current locale in the route with the * locale provided by the user via the twig function. * * Current uri: http://www.example.com/ru/current/path?with=query * * In Twig: {{ localize_route('en') }} => http://www.example.com/en/current/path?with=query * {{ localize_route('fr') }} => http://www.example.com/fr/current/path?with=query * * @param mixed $parameters The parameters of the function * @param string $name The name of the templating to render if needed * * @return Output a string representation of the current localized route */ public function executeLocalizeRoute($parameters = array(), $name = null) { $attributes = $this->request->attributes->all(); $query = $this->request->query->all(); $route = $attributes['_route']; # This will add query parameters to attributes and filter out attributes starting with _ $attributes = array_merge($query, $this->filterPrivateKeys($attributes)); $attributes['_locale'] = $parameters !== null ? $parameters : \Locale::getDefault(); return $this->router->generate($route, $attributes); } /** * This function will filter private keys from the attributes array. A * private key is a key starting with an underscore (_). The filtered array is * then returned. * * @param array $attributes The original attributes to filter out * @return array The filtered array, the array withtout private keys */ private function filterPrivateKeys($attributes) { $filteredAttributes = array(); foreach ($attributes as $key => $value) { if (!empty($key) && $key[0] != '_') { $filteredAttributes[$key] = $value; } } return $filteredAttributes; } } 现在,您可以通过捆绑包加载此服务定义或直接加载到位于 config.yml 下的 app/config 文件中来启用此树枝扩展。 services: acme.twig.extension: class: Acme\WebsiteBundle\Twig\Extension\LocalizeRouteExtension scope: request arguments: request: "@request" router: "@router" tags: - { name: twig.extension } 现在您可以在 twig 中执行此操作以提出当前加载页面的不同版本: <a id='englishLinkId' href="{{ localize_route('en') }}"> English </a> <a id='frenchLinkId' href="{{ localize_route('fr') }}"> Français </a> 希望这对您有所帮助,这就是您正在寻找的。 编辑: 看来直接缩小twig扩展的范围是不可能的。为了避免这种情况,请始终注入依赖项容器,然后检索所需的服务。这应该通过更改 twig 扩展的构造函数定义和扩展的服务定义来反映。我编辑了之前的答案,检查新更新的构造函数定义和新服务定义。 另一种可能的解决方案是注入一个帮助服务来负责本地化路线。该辅助服务应该在请求范围内。事实上,这就是我的代码中的内容。我有一个 RoutingHelper 服务注入到我的树枝扩展中。然后,在方法executeLocalizeRoute中,我使用我的助手来完成这项艰苦的工作。 告诉我现在一切是否正常。 问候, 马特
我想在 Vue.js 和 Firebase 上开发自己的 Web 应用程序,用户可以使用支付 API(paypal 或 stripe)购买产品或服务。 我想显示这些产品的价格...
Yii2 多语言 slug 和语言切换器将“尊重”翻译的 slug 的
问题是 - 我不知道如何切换到翻译的 slug: 我使用 lav45/yii2-translated-behavior 实现了多语言 slugs。 数据库非常简单: 投资组合模型: 编号 |创造...
docusaurus 不会获取我翻译的 Markdown 文件
我的 docusaurus 项目结构: 网站 |--文档 |----主页.md |--i18n/de/docusaurus-plugin-content-docs/current |----主页.md 当我使用语言切换时,我会被定向到 http://localhost:
我知道如何创建主题和模板的翻译,例如使用 Poedit 生成 .po 和 .mo 文件。但由于模板名称是用 PHP 注释写在每个项目顶部的...
根据有关 i18n 的 Angular 文档,我设置了如下 i18n 选项: 并在构建属性中设置 localize 属性以使用“it-IT” 当我使用“ngserve”通讯开始应用程序时...