- From: Christian Liebel <notifications@github.com>
- Date: Sun, 25 Aug 2024 07:22:11 -0700
- To: w3c/manifest <manifest@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/manifest/pull/1101/review/2259303030@github.com>
@christianliebel commented on this pull request.
> + "de": "Farbwähler",
+ "en": {"value": "Color Picker"},
+ "en-GB": {"value": "Colour Picker", "dir": "ltr"},
+ "fr": {"value": "Sélecteur de Couleur", "lang": "fr-CA", "dir": "ltr"},
+ "ar": {"value": "منتقي الألوان", "dir": "rtl"}
+ }
+ }
+ </pre>
+ </aside>
+ <p>
+ [=manifest/*_localized=] members contain a [=language map=] that
+ defines [=localized values=] for the given [=localizable member=] in
+ the application. The user agent SHOULD use the user's localization
+ settings to select the [=localized value=] whose [=language tag=] key best
+ matches the user's preference. When no such [=localized value=] is
+ available, the default representation is used.
"Default representation" is already defined, and it refers to the member without the `*_localized` suffix.
It's a good question what should happen in this scenario:
```json
{
// "name" (default representation) is missing
"name_localized": {
"de": "Guten Morgen",
"fr": "Bonjour"
}
}
```
We could simply ignore the `*_localized` member if there is no/an invalid default representation (case A).
Or, we could specify a fallback chain:
1. Match the `*_localized` against the user's locale settings and use the best match (case B).
2. If we have a valid `lang` specified at the root level, match the `*_localized` language map against it and use the best match (case C).
3. If there is still no match, ignore the member altogether (case D).
WDYT? @marcoscaceres @dmurph @aphillips
<details>
<summary>Cases</summary>
## Case A
```json
{
"name": 123, // invalid name
"name_localized": {
"de": "Guten Morgen",
"fr": "Bonjour"
}
}
```
| Locale | Result |
| --- | --- |
| `de` | — |
| `fr` | — |
| `en` | — |
## Case B
```json
{
"name_localized": {
"de": "Guten Morgen",
"fr": "Bonjour"
}
}
```
| Locale | Result |
| --- | --- |
| `de` | Guten Morgen |
| `fr` | Bonjour |
| `en` | — |
## Case C
```json
{
"lang": "fr",
"name_localized": {
"de": "Guten Morgen",
"fr": "Bonjour"
}
}
```
| Locale | Result |
| --- | --- |
| `de` | Guten Morgen |
| `fr` | Bonjour |
| `en` | Bonjour |
## Case D
```json
{
"lang": "en",
"name_localized": {
"de": "Guten Morgen",
"fr": "Bonjour"
}
}
```
| Locale | Result |
| --- | --- |
| `de` | Guten Morgen |
| `fr` | Bonjour |
| `en` | — |
</details>
--
Reply to this email directly or view it on GitHub:
https://github.com/w3c/manifest/pull/1101#discussion_r1730368697
You are receiving this because you are subscribed to this thread.
Message ID: <w3c/manifest/pull/1101/review/2259303030@github.com>
Received on Sunday, 25 August 2024 14:22:15 UTC