1.1.4 • Published 5 years ago

lokalise-api v1.1.4

Weekly downloads
19
License
ISC
Repository
github
Last release
5 years ago

lokalise

lokalise.co API client service

How to install

$ npm i lokalise-api

or

$ yarn add lokalise-api

To find out more about API params look at the Lokasize API documentation

https://lokalise.co/apidocs

How to use

const LokaliseAPI = require('lokalise-api');
const lokalise = new LokaliseAPI.LokaliseAPI(CONFIG.TEST_TOKEN);

lokalise.projects.add({
    name: 'Test project',
    description: 'Test project description',
    base_lang: 'en'
}).then((data) => {

    if (data.response.code === '200') {
        lokalise.projects.import({
            id: data.project.id,
            file: __dirname + "/test-en.json",
            lang_iso: 'en',
            replace: 1
        }).then((data1) => {

            console.log(data1);

            lokalise.projects.remove(data.project.id).then((data2) => {
                console.log(data2);
            });
        });
    }
});

LokaliseAPI methods

Projects methods

const LokaliseAPI = require('lokalise-api');
const lokalise = new LokaliseAPI.LokaliseAPI(CONFIG.TEST_TOKEN);

lokalise.projects.list(): Promise<ProjectsList>

lokalise.projects.add(data: AddProjectParams): Promise<AddProjectResponse>

lokalise.projects.remove(id: string): Promise<DefaultResponse>

lokalise.projects.import(data: ImportData): Promise<ProjectImportResponse>

lokalise.projects.export(data: ExportProjectParams): Promise<ExportResponse>

lokalise.projects.uploadScreenShot(data: UploadScreenshot): Promise<DefaultResponse> 

lokalise.projects.createSnapshot(id: string, title: string): Promise<DefaultResponse>

lokalise.projects.empty(id: string): Promise<DefaultResponse>

lokalise.projects.exportToPath(filesPath: string, data: ExportProjectParams): Promise<ExportResponse>

Languages methods

const LokaliseAPI = require('lokalise-api');
const lokalise = new LokaliseAPI.LokaliseAPI(CONFIG.TEST_TOKEN);

lokalise.languages.list(id: string): Promise<ProjectLanguagesList>

lokalise.languages.add(data: AddRemoveLanguagesParams): Promise<DefaultResponse>

lokalise.languages.setProperties(data: SetLanguagesParams): Promise<DefaultResponse>

lokalise.languages.remove(data: AddRemoveLanguagesParams): Promise<DefaultResponse>

Strings methods

const LokaliseAPI = require('lokalise-api');
const lokalise = new LokaliseAPI.LokaliseAPI(CONFIG.TEST_TOKEN);

lokalise.strings.list(params: StringsListParams): Promise<StringsList>

lokalise.strings.add(params: AddKeysParams): Promise<AddKeysResponse>

lokalise.strings.remove(params: RemoveKeysParams): Promise<DefaultResponse>

Lokalise enum's you might use

const LokaliseAPI = require('lokalise-api');

LokaliseAPI.PluralFormat.generic;
LokaliseAPI.PluralFormat.json_string;
LokaliseAPI.PluralFormat.icu;
LokaliseAPI.PluralFormat.i18next;
LokaliseAPI.PluralFormat.symfony;

LokaliseAPI.PlaceholderFormat.i18n;
LokaliseAPI.PlaceholderFormat.printf;
LokaliseAPI.PlaceholderFormat.ios;
LokaliseAPI.PlaceholderFormat.icu;
LokaliseAPI.PlaceholderFormat.net;
LokaliseAPI.PlaceholderFormat.symfony;

LokaliseAPI.FileFormat.android_sdk;
LokaliseAPI.FileFormat.ios_sdk;
LokaliseAPI.FileFormat.xml;
LokaliseAPI.FileFormat.strings;
LokaliseAPI.FileFormat.csv;
LokaliseAPI.FileFormat.xlsx;
LokaliseAPI.FileFormat.po;
LokaliseAPI.FileFormat.properties;
LokaliseAPI.FileFormat.json;
LokaliseAPI.FileFormat.xliff;
LokaliseAPI.FileFormat.plist;
LokaliseAPI.FileFormat.resx;
LokaliseAPI.FileFormat.js;
LokaliseAPI.FileFormat.react_native;
LokaliseAPI.FileFormat.symfony_xliff;
LokaliseAPI.FileFormat.xlf;
LokaliseAPI.FileFormat.php;
LokaliseAPI.FileFormat.ini;
LokaliseAPI.FileFormat.ruby_yaml;
LokaliseAPI.FileFormat.yaml;
LokaliseAPI.FileFormat.stf;
LokaliseAPI.FileFormat.ts;

LokaliseAPI.PlatformBitMask.IOS;
LokaliseAPI.PlatformBitMask.Android;
LokaliseAPI.PlatformBitMask.Web;
LokaliseAPI.PlatformBitMask.Other;

Project's interfaces

enum ExportEmpty {
    empty = "empty",
    base = "base",
    skip = "skip"
}

enum ExportSort {
    first_added = "first_added",
    last_added = "last_added",
    last_updated = "last_updated",
    a_z = "a_z",
    z_a = "z_a"
}

enum JavaPropertiesEncoding {
    utf8 = "utf-8",
    latin1 = "latin-1"
}

interface ProjectsListObject {
    id: string
    name: string
    desc: string
    created: string,
    owner: string
}

interface ProjectsList {
    projects: ProjectsListObject[],
    response: LokaliseResponse
}

interface AddProjectParams {
    name: string,
    description?: string,
    base_lang?: string
}

interface AddProjectResponse {
    project: {
        id: number
    },
    response: LokaliseResponse
}

interface ExportProjectParams {
    id: number
    type: FileFormat
    langs?: string[]
    use_original?: 0 | 1
    filter?: any
    bundle_structure?: string
    directory_prefix?: string
    webhook_url?: string
    export_all?: 0 | 1
    export_empty?: ExportEmpty
    include_comments?: 0 | 1
    include_pids?: string[]
    include_tags?: string[]
    export_sort?: ExportSort
    replace_breaks?: 0 | 1
    yaml_include_root?: 0 | 1
    json_unescaped_slashes?: 0 | 1
    java_properties_encoding?: JavaPropertiesEncoding
    java_properties_separator?: "=" | ":"
    no_language_folders?: 0 | 1
    triggers?: any
    plural_format?: PluralFormat
    icu_numeric?: 0 | 1
    placeholder_format?: PlaceholderFormat
}

interface ExportResponse {
    bundle: {
        file: string,
        full_file: string
    },
    response: LokaliseResponse
}

interface ImportData {
    id: string
    file: any
    lang_iso: string
    replace?: 0 | 1
    convert_placeholders?: 0 | 1
    icu_plurals?: 0 | 1
    fill_empty?: 0 | 1
    distinguish?: 0 | 1
    use_trans_mem?: 0 | 1
    hidden?: 0 | 1
    tags?: string[]
    filename?: string
    replace_breaks?: 0 | 1
}

interface ProjectImportResponse {
    result: {
        skipped: number,
        inserted: number,
        updated: number
    },
    response: LokaliseResponse
}

interface UploadScreenshot {
    id: string,
    screenshot: string,
    autotag: 0 | 1,
    key_ids: string[]
}

Language's interfaces

interface Language {
    iso: string
    name: string
    rtl: string
}

interface ProjectLanguage extends Language {
    words: string,
    is_default: string
}

interface SystemLanguagesResponse {
    languages: Language[],
    response: DefaultResponse
}

interface ProjectLanguagesList {
    languages: ProjectLanguage[],
    response: DefaultResponse
}

interface AddRemoveLanguagesParams {
    id: string,
    iso: string[]
}

interface SetLanguagesParams {
    id: string
    original_iso: string
    custom_iso?: string
    custom_name?: string
}

String's interfaces

interface LocaleKey {
    key: string
    platform_mask: PlatformBitMask
    context: string
    translation: string
    plural_key: string
    is_hidden: string
    created_at: string
    tags?: string[]
    modified_at: string
    fuzzy: string
    is_archived: string
}

interface LocaleKeyAppend extends LocaleKey {
    filename_web: string,
    hidden: number,
    translations: { [locale: string]: string },
    plural: string
}

interface StringsList {
    strings: { [lang: string]: LocaleKey[] }
    response: LokaliseResponse
}

interface StringsListParams {
    id: string
    langs?: object[]
    platform_mask?: PlatformBitMask
    keys?: object[]
    tags?: object[]
    plural_format?: PluralFormat
    icu_numeric?: boolean
    placeholder_format?: PlaceholderFormat
}

interface AddKeysParams {
    id: number,
    data: LocaleKeyAppend[]
}

interface AddKeysResponse {
    result: {
        inserted: string,
        updated: string
    },
    response: LokaliseResponse
}

interface RemoveKeysParams {
    id: number,
    keys: string[]
}

How to develop

    npm run dev

How to test

    npm test
1.1.4

5 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago