UNPKG

i18n-node-server

Version:

NodeJS http server to store your internationalized phrases

222 lines (151 loc) 3.73 kB
# i18n-node-server NodeJS http server to store your internationalized phrases Supports [ISO 3166-1 codes](https://en.wikipedia.org/wiki/ISO_3166-1) ## Usage For install run command `npm i -g i18n-node-server` Run `i18n-node-server --help` for details Run `i18n-node-server` for start http-server ## HTTP API <details> <summary>GET /ping</summary> returns `pong` </details> <details> <summary>GET /api/named</summary> returns all supports country codes with country name ``` { "AF": "Afghanistan", "AL": "Albania, People's Socialist Republic of", "DZ": "Algeria, People's Democratic Republic of", "AS": "American Samoa", "AD": "Andorra, Principality of", "AO": "Angola, Republic of", ... } 239 country codes ``` </details> <details> <summary>GET /api/cc</summary> returns array with all supports country codes ``` ["AF", "AL", "DZ", "AS", "AD", "AO", ...] 239 country codes ``` </details> <details> <summary>PUT /api/put-new</summary> put a new phrase with translates **body** ``` { ident: "my.first-ident", records: { "AL": "translate for Albania", "AF": "translate for Afganistan", ... } } ``` **returns http status** `200` - new phrase saved `400` - ident already exists or _body_ has incorrect structure </details> <details> <summary>GET /api/record/:ident</summary> returns all translates by a phrase ident **query options** * countryCode ``` /api/record/you.phrase.ident?countryCode=GB ``` return string which contains translate for country GB * filter ``` /api/record/you.phrase.ident?filter=GB,AL,AF ``` returns translates only for GB, AL and AF country codes ``` { "GB": "translate for GB", "AL": "translate for AL", "AF": "translate for AF", } ``` **returns http status** `400` - ident not valid </details> <details> <summary>GET /api/all</summary> returns all translates of every phrases ``` { "ident1": {...}, "ident2": { "GB": "translate for GB", "AL": "translate for AL", "AF": "translate for AF", ... } } ``` **query options** * filter ``` /api/all?filter=GB,AL,AF ``` returns translates only for GB, AL and AF country codes fo every phrase ``` { "ident-1": { "GB": "translate for GB", "AL": "translate for AL", "AF": "translate for AF" }, "ident_2": { "GB": "translate for GB", "AL": "translate for AL", "AF": "translate for AF" } } ``` </details> <details> <summary>POST /api/update-records</summary> update many translations for phrase **body** ``` { "ident": "your.phrase-ident", "records": { "GB": "new translate for GB", "AL": "new translate for AL", "AF": "new translate for AF", ... } } ``` **returns http codes** `200` - translations for a phrase updated `400` - phrase not exists or _body_ has incorrect structure </details> <details> <summary>POST /api/update-record</summary> update one translation for phrase **body** ``` { "ident": "your.phrase-ident", "countryCode": "GB", "value": "new translation for GB" } ``` **returns http codes** `200` - translation for a phrase updated `400` - phrase not exists or _body_ has incorrect structure or _value_ is null </details> ## Ident format Regex for testing phrase ident: `/[a-zA-Z0-9\.\_\-\,]+/` ## How works inside For every phrase creates new `.json` file and contains translates for every 239 countries.