53 lines
1.5 KiB
Markdown
53 lines
1.5 KiB
Markdown
|
# Formula Localization
|
|||
|
|
|||
|
Excel localizes function names in the user interface but stores the `en-US` form
|
|||
|
in XLSX and XLSM files.
|
|||
|
|
|||
|
## JSON Database
|
|||
|
|
|||
|
[./table.json](./table.json) is a large JSON object. Each key is a locale id
|
|||
|
and each value is an array of names. The arrays are in the same order.
|
|||
|
|
|||
|
Generating translations is straightforward:
|
|||
|
|
|||
|
```js
|
|||
|
// assuming `data` is the data
|
|||
|
> var idx = data.en.indexOf("ECMA.CEILING");
|
|||
|
> Object.entries(data).map(([x,y]) => [x,y[idx]]);
|
|||
|
[
|
|||
|
[ 'ar', 'ECMA.CEILING' ],
|
|||
|
[ 'cs', 'ECMA.CEILING' ],
|
|||
|
[ 'da', 'ECMA.LOFT' ],
|
|||
|
[ 'de', 'ECMA.OBERGRENZE' ],
|
|||
|
[ 'el', 'ECMA.CEILING' ],
|
|||
|
[ 'en', 'ECMA.CEILING' ],
|
|||
|
[ 'en_GB', 'ECMA.CEILING' ],
|
|||
|
[ 'es', 'MULTIPLO.SUPERIOR.ECMA' ],
|
|||
|
[ 'es_MX', 'MULTIPLO.SUPERIOR.ECMA' ],
|
|||
|
[ 'fi', 'ECMA.PYÖRISTÄ.KERR.YLÖS' ],
|
|||
|
[ 'fr', 'ECMA.PLAFOND' ],
|
|||
|
[ 'fr_CA', 'ECMA.PLAFOND' ],
|
|||
|
[ 'he', 'ECMA.CEILING' ],
|
|||
|
[ 'hu', 'ECMA.PLAFON' ],
|
|||
|
[ 'id', 'ECMA.CEILING' ],
|
|||
|
[ 'it', 'ECMA.ARROTONDA.ECCESSO' ],
|
|||
|
[ 'ja', 'ECMA.CEILING' ],
|
|||
|
[ 'ko', 'ECMA.CEILING' ],
|
|||
|
[ 'nl', 'ECMA.AFRONDEN.BOVEN' ],
|
|||
|
[ 'no', 'ECMA.AVRUND.GJELDENDE.MULTIPLUM' ],
|
|||
|
[ 'pl', 'ECMA.ZAOKR.W.GÓRĘ' ],
|
|||
|
[ 'pt', 'ECMA.TETO' ],
|
|||
|
[ 'pt_PT', 'ARRED.EXCESSO.ECMA' ],
|
|||
|
[ 'ru', 'ECMA.ОКРВВЕРХ' ],
|
|||
|
[ 'sk', 'ECMA.CEILING' ],
|
|||
|
[ 'sv', 'ECMA.RUNDA.UPP' ],
|
|||
|
[ 'th', 'ECMA.CEILING' ],
|
|||
|
[ 'tr', 'ECMA.TAVAN' ],
|
|||
|
[ 'zh_CN', 'ECMA.CEILING' ],
|
|||
|
[ 'zh_TW', 'ECMA.CEILING' ]
|
|||
|
]
|
|||
|
```
|
|||
|
|
|||
|
[](https://github.com/SheetJS/notes)
|
|||
|
|