3.14.1 • Published 2 years ago

@aofl/i18n-mixin v3.14.1

Weekly downloads
217
License
MIT
Repository
github
Last release
2 years ago

@aofl/i18n-mixin

The AOFL i18nMixin element decorates any element with i18n support.

Api Documentation

Examples

Requirements

For each component which will support internationalization an i18n directory will need to be created in the root of the component directory. Inside this directory language translations-[language-contrycode].js files will be expected.

A translation.js file will be generated via running aofl i18n. The command will find all component template instances of translation method strings, e.g. __('string to translate'), _c('more strings').

The translation.js can be used by a tranlsations api or translators to create the necessary translation-lang.js files in the format of translation-LOCALE.js, e.g. translation-en-US or translation-pt-BZ.po, which again will be expected in the compontent's i18n directory.

Finally the component class will need to set the current language, e.g. this.lang = 'pt-BZ';

Usage with i18n Loader

Finally the i18n-loader will be required.

Run npm i -D @aofl/i18n-loader

Then add the loader to your webpack config:

module: {
  rules: [
    {
      test: /language\.js$/,
      use: '@aofl/i18n-loader'
    }
  ]
}

Multiple template support

The AOFL mixin supports multiple template to be rendered based on the currently set lang. For instance if de-DE is the selected language then the template associated with that language will be rendered.

The render method expects a template object like so:

return super._render({
  default: {
    template(context, html) {
      return html`<h2>${context.__('How are you %s1', context.person)}</h2>`
    },
    styles: []
  },
  'de-DE': {
    template(context, html) {
      return html`
        <h1>German version</h1>
        <h2>${context.__('How are you %s1', context.person)}</h2>
      `;
    },
    styles: []
  }
})

code example

import i18nMixin from '@aofl/i18n-mixin';
import {AoflElement} from '@aofl/web-components/aofl-element';
import styles from './styles.css';

class MyComp extends i18nMixin(AoflElement) {
  constructor() {
    super();
    this.langMap = langMap;
    this.lang = 'de-DE';
  }
  static get is() {
    return 'my-comp';
  }
  _render() {
    let person = 'Albert';
    let count = 1;
    return super._render({
      default: {
        template(context, html) {
          return html`<h2>${context._r(context.__('How are you %r1%'), context.person)}</h2>`
        },
        styles: []
      },
      'de-DE': {
        template(context, html) {
          return html`
            <h1>German version</h1>
            <h2>${context._r(context.__('How are you %r1%'), context.person)}</h2>
            <p>${context._c('There %c1% here!', {
              1: 'is one person',
              2: 'are two people',
              3: 'are many people'
            }, context.count)}</p>
          `;
        },
        styles: []
      }
    });
  }
};
3.14.1

2 years ago

3.14.0

2 years ago

4.0.0-alpha.45

3 years ago

4.0.0-alpha.44

3 years ago

4.0.0-alpha.17

3 years ago

4.0.0-alpha.16

3 years ago

4.0.0-alpha.15

3 years ago

4.0.0-alpha.19

3 years ago

4.0.0-alpha.18

3 years ago

4.0.0-alpha.39

3 years ago

4.0.0-alpha.38

3 years ago

4.0.0-alpha.37

3 years ago

4.0.0-alpha.36

3 years ago

4.0.0-alpha.31

3 years ago

4.0.0-alpha.30

3 years ago

4.0.0-alpha.35

3 years ago

4.0.0-alpha.34

3 years ago

4.0.0-alpha.33

3 years ago

4.0.0-alpha.32

3 years ago

4.0.0-alpha.28

3 years ago

4.0.0-alpha.27

3 years ago

4.0.0-alpha.26

3 years ago

4.0.0-alpha.25

3 years ago

4.0.0-alpha.29

3 years ago

4.0.0-alpha.20

3 years ago

4.0.0-alpha.24

3 years ago

4.0.0-alpha.23

3 years ago

4.0.0-alpha.22

3 years ago

4.0.0-alpha.21

3 years ago

4.0.0-alpha.42

3 years ago

4.0.0-alpha.41

3 years ago

4.0.0-alpha.40

3 years ago

4.0.0-alpha.43

3 years ago

4.0.0-alpha.13

3 years ago

3.13.1

3 years ago

3.13.0

3 years ago

4.0.0-alpha.11

3 years ago

4.0.0-alpha.9

3 years ago

4.0.0-alpha.10

3 years ago

3.12.1

3 years ago

3.12.0

3 years ago

3.9.0

4 years ago

3.10.0

4 years ago

3.8.1

4 years ago

3.9.0-alpha.0

4 years ago

3.8.0

4 years ago

3.6.1

4 years ago

3.5.0

4 years ago

3.5.0-beta.20

4 years ago

3.5.0-beta.22

4 years ago

3.5.0-beta.21

4 years ago

3.5.0-beta.19

4 years ago

3.5.0-beta.18

4 years ago

3.5.0-beta.15

4 years ago

3.5.0-beta.14

4 years ago

3.5.0-beta.17

4 years ago

3.5.0-beta.16

4 years ago

3.5.0-beta.13

4 years ago

3.5.0-beta.12

4 years ago

3.5.0-beta.11

4 years ago

3.5.0-beta.10

4 years ago

3.5.0-beta.7

4 years ago

3.5.0-beta.8

4 years ago

3.5.0-beta.5

4 years ago

3.5.0-beta.6

4 years ago

3.5.0-beta.9

4 years ago

3.5.0-beta.3

4 years ago

3.5.0-beta.4

4 years ago

3.5.0-beta.2

4 years ago

3.5.0-beta.1

4 years ago

3.3.0

4 years ago

3.2.2-alpha.3

4 years ago

3.2.2-alpha.2

4 years ago

3.2.1

4 years ago

3.2.0

4 years ago

3.1.0

4 years ago

3.0.0

4 years ago

3.0.0-beta.49

4 years ago

3.0.0-beta.48

4 years ago

3.0.0-beta.47

4 years ago

3.0.0-beta.46

4 years ago

3.0.0-beta.45

4 years ago

3.0.0-beta.44

4 years ago

3.0.0-beta.43

4 years ago

3.0.0-beta.42

4 years ago

3.0.0-beta.41

4 years ago

3.0.0-beta.40

4 years ago

3.0.0-alpha.12

5 years ago

3.0.0-beta.39

5 years ago

3.0.0-beta.38

5 years ago

3.0.0-beta.37

5 years ago

3.0.0-beta.36

5 years ago

3.0.0-beta.35

5 years ago

3.0.0-beta.34

5 years ago

3.0.0-beta.32

5 years ago

3.0.0-beta.30

5 years ago

3.0.0-beta.28

5 years ago

3.0.0-beta.27

5 years ago

3.0.0-beta.26

5 years ago

3.0.0-beta.25

5 years ago

3.0.0-beta.24

5 years ago

3.0.0-beta.23

5 years ago

3.0.0-beta.22

5 years ago

3.0.0-beta.17

5 years ago

3.0.0-beta.16

5 years ago

3.0.0-beta.15

5 years ago

3.0.0-beta.14

5 years ago

3.0.0-beta.13

5 years ago

3.0.0-beta.12

5 years ago

3.0.0-beta.11

5 years ago

3.0.0-beta.9

5 years ago

3.0.0-beta.8

5 years ago

3.0.0-beta.6

5 years ago

3.0.0-alpha.14

5 years ago

3.0.0-alpha.13

5 years ago

3.0.0-alpha.11

5 years ago

3.0.0-alpha.5

5 years ago

3.0.0-alpha.0

5 years ago

3.0.0-0

5 years ago

2.1.0-alpha.11

5 years ago

2.1.0-alpha.8

5 years ago

2.1.0-alpha.7

5 years ago

2.0.0

5 years ago

2.0.0-alpha.17

5 years ago

2.0.0-alpha.16

5 years ago

2.0.0-alpha.5

5 years ago

2.0.0-alpha.1

5 years ago

1.4.1

5 years ago

1.4.0

5 years ago

1.3.0

5 years ago

1.2.3

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago

1.0.0-beta.28

6 years ago

1.0.0-beta.27

6 years ago

1.0.0-beta.26

6 years ago

1.0.0-beta.25

6 years ago

1.0.0-beta.24

6 years ago

1.0.0-beta.23

6 years ago

1.0.0-beta.22

6 years ago