You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Stefan Seifert (JIRA)" <ji...@apache.org> on 2017/05/03 19:49:04 UTC

[jira] [Updated] (SLING-6826) i18n: Supported nested keys in JSON i18n files

     [ https://issues.apache.org/jira/browse/SLING-6826?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Seifert updated SLING-6826:
----------------------------------
    Fix Version/s:     (was: i18n 2.5.10)
      Description: 
i18n supports resource files stored as JSON binary files in the repository:
https://sling.apache.org/documentation/bundles/internationalization-support-i18n.html#json-file-based

currently nested key structures are not really supported - from the docs page: 
{quote}
The parser will take any "key":"value" pair in the JSON file, including those in nested objects or arrays. Normally, a dictionary will be just a single json object = hash map though.
{quote}

that means that these two JSON example will produc the same result:
A)
{code:javascript}
{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}
{code}

B)

{code:javascript}
{
  "level1": {
    "key1": "value1",
    "level2: {
      "key2": "value2",
      "level3": {
        "key3": "value3"
      }
    }
  }
}
{code}

in both cases the keys are just
{noformat}
key1
key2
key3
{noformat}

the goal of this ticket is to interpret the nested JSON object structure as parts of the i18n keys, so that example B would produce these keys:
{noformat}
level1.key1
level1.level2.key2
level1.level2.level3.key3
{noformat}

as statet in the documentation in most cases people will only use the JSON as key/value map file with no hierarchies at all. in this case the result is the same. but if someone used hierarchies this ticket will create a backward compatibility issue. i will start a discussion on the sling-dev list about this.

  was:
i18n supports resource files stored as JSON binary files in the repository:
https://sling.apache.org/documentation/bundles/internationalization-support-i18n.html#json-file-based

currently nested key structures are not really supported - from the docs page: 
{quote}
The parser will take any "key":"value" pair in the JSON file, including those in nested objects or arrays. Normally, a dictionary will be just a single json object = hash map though.
{quote}

that means that these two JSON example will produc the same result:
A)
{code:javascript}
{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}
{code}

B)

{code:javascript}
{
  "level1": {
    "key1": "value1",
    "level2: {
      "key2": "value2",
      "level3": {
        "key3": "value3"
      }
    }
  }
}
{code}

in both cases the keys are just
{noformat}
key1
key2
key3
{noformat}

the goal of this ticket is to interpret the nested JSON object structure as parts of the i18n keys, so that example B would produce these keys:
{noformat}
key1
level2.key2
level2.level3.key3
{noformat}

as statet in the documentation in most cases people will only use the JSON as key/value map file with no hierarchies at all. in this case the result is the same. but if someone used hierarchies this ticket will create a backward compatibility issue. i will start a discussion on the sling-dev list about this.


> i18n: Supported nested keys in JSON i18n files
> ----------------------------------------------
>
>                 Key: SLING-6826
>                 URL: https://issues.apache.org/jira/browse/SLING-6826
>             Project: Sling
>          Issue Type: New Feature
>          Components: i18n
>    Affects Versions: i18n 2.5.8
>            Reporter: Stefan Seifert
>
> i18n supports resource files stored as JSON binary files in the repository:
> https://sling.apache.org/documentation/bundles/internationalization-support-i18n.html#json-file-based
> currently nested key structures are not really supported - from the docs page: 
> {quote}
> The parser will take any "key":"value" pair in the JSON file, including those in nested objects or arrays. Normally, a dictionary will be just a single json object = hash map though.
> {quote}
> that means that these two JSON example will produc the same result:
> A)
> {code:javascript}
> {
>   "key1": "value1",
>   "key2": "value2",
>   "key3": "value3"
> }
> {code}
> B)
> {code:javascript}
> {
>   "level1": {
>     "key1": "value1",
>     "level2: {
>       "key2": "value2",
>       "level3": {
>         "key3": "value3"
>       }
>     }
>   }
> }
> {code}
> in both cases the keys are just
> {noformat}
> key1
> key2
> key3
> {noformat}
> the goal of this ticket is to interpret the nested JSON object structure as parts of the i18n keys, so that example B would produce these keys:
> {noformat}
> level1.key1
> level1.level2.key2
> level1.level2.level3.key3
> {noformat}
> as statet in the documentation in most cases people will only use the JSON as key/value map file with no hierarchies at all. in this case the result is the same. but if someone used hierarchies this ticket will create a backward compatibility issue. i will start a discussion on the sling-dev list about this.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)