gpt4 book ai didi

javascript - l20n.js - 如何从 javascript 访问本地化子实体

转载 作者:行者123 更新时间:2023-11-29 10:46:39 24 4
gpt4 key购买 nike

在这个例子中,我可以看到如何访问 LOL 资源中的变量

<brandName {
nominative: "Firefox",
genitive: "Firefoksa",
dative: "Firefoksowi",
accusative: "Firefoksa",
instrumental: "Firefoksem",
locative: "Firefoksie"
}>

<about "O {{ brandName.locative }}">

但是,我也希望能够在 javascript 中做一些类似的事情,例如:

document.l10.get('brandName.nominative');

虽然这对我不起作用。我调试了一下,但我觉得我在浪费时间,而且可能已经有一种简单的方法可以做到这一点。有吗?

最佳答案

这在 L20n 中是不可能的,因为作为开发人员,您无法确定 nominative 将在所有语言中定义。继续阅读以找出原因。

在英语中,您的示例很可能如下所示:

<brandName "Firefox">
<about "About {{ brandName }}">

这次没有任何 .nominative 可以要求!

L20n 与不对称有关。英语字符串的一个变体可能对应德语的 4 个变体、波兰语的 7 个和匈牙利语的 16 个。开发者和 L20n 之间有一个社会契约:如果开发者请求一个名为 brandName 的实体的值,L20n 将返回一个可以在 UI 中使用的字符串。为获取该字符串所做的所有工作对开发人员都是隐藏的,并且可能因本地化人员构建的语言和逻辑而异。

根据您想要实现的目标,您可能会发现以下两种结构很有帮助:

  • default values可用于指示在您不要求任何特定 key 时返回的默认 key 。在您问题的示例中,您可以通过在其旁边放置一个星号来将 nominative 定义为默认值,如下所示:

    <brandName {
    *nominative: "Firefox",
    genitive: "Firefoksa",
    dative: "Firefoksowi",
    accusative: "Firefoksa",
    instrumental: "Firefoksem",
    locative: "Firefoksie"
    }>
    <about "O {{ brandName.locative }}">

    当您现在尝试在 JavaScript 中检索 brandName 的翻译时,您将获得 nominative 键“Firefox”的值:

    document.l10.get('brandName');
    // "Firefox"
  • attributes可以添加到实体以存储元数据,如下所示:

    <brandName "Firefox"
    accesskey: "F"
    >

    请注意,属性不同于字典值。在上面的示例中,brandName 的值是一个简单的字符串“Firefox”。 brandName 实体有一个额外的属性,accesskey,其值为“F”。您可以使用 getEntity 访问属性:

    document.l10.getEntity('brandName');    
    // { value: "Firefox", attributes: { accesskey: "F" } }

关于javascript - l20n.js - 如何从 javascript 访问本地化子实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18227651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com