@wikimedia/kartotherian-babel

    1.0.3 • Public • Published

    Build Status Coverage Status

    @wikimedia/kartotherian-babel

    Tile source to restructure vector PBFs for multilingual usecases, such as convert a single JSON object into multiple key/values, or to replace all language key/value names with a single one.

    Usage examples

    Tile is generated with 'name_' field set a JSON-encoded key-value object. Babel can be used to convert that tile to a tile, with each value in the object becoming a tag of its own, e.g. 'name_en', 'name_fr', ... . Also, babel can be used to replace multiple 'name_lang' tags with a single 'name_' tag right before rendering it, choosing the best language based on the fallback rules, but only if it is different from the 'name' tag.

    # Process tiles from 'gen' source, expanding json string into multiple tags
    json2tags:
      uri: json2tags://
      params:
        source: {ref: gen}
        tag: name   # optional, 'name' is the default
    # Process tiles from 'store' source, replacing all 'name_*' tags with a single 'name' tag
    babel:
      uri: babel://
      params:
        source: {ref: store}
        
        # optional, 'name' is the default
        tag: name
        
        # optional, used by default if no 'lang' code is passed to getAsync()
        defaultLanguage: 'en' 
        
        # optional map of fallback values. Can be a json file or an object value
        languageMap: '/my/path/fallback.json'
        
        # -- OR --
        
        languageMap:
          en: ['fr', 'es', 'de']
          ru: ['be']

    Language resolution

    For babel://, the language of the name_ is chosen based on these rules:

    getAsync({z,x,y, lang:'xx'):

    • name_xx
    • Use explicitly set fallbacks from the languageMap
    • Use any name_yy-Script where Script is the script of xx. E.g. if lang=ru, pick any lang_yy-Cyrl.
    • If xx uses the Latin script, use any name_zz_rm
    • name

    Scripts

    Babel gets the CLDR defined script name (Latn, Cyrl, ... ) based on the language code. It also uses a few overrides from the overrides.json. This file should be updated with any language IDs found in OSM data.

    Install

    npm i @wikimedia/kartotherian-babel

    DownloadsWeekly Downloads

    3

    Version

    1.0.3

    License

    Apache-2.0

    Unpacked Size

    67.5 kB

    Total Files

    22

    Last publish

    Collaborators

    • ottomata
    • annetee
    • jgiannelos-wmf
    • joakin
    • krinkle
    • jdforrester
    • edg2s
    • volker_e
    • catrope
    • santhosh.thottingal
    • cscott
    • subbu_ss
    • arlolra
    • jdlrobson
    • mateusbs17
    • brightbyte
    • phuedx
    • nrayio
    • jandre3000
    • sbassett29
    • nikerabbit