summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/vue_shared/translate.js
blob: e0baf03acc36801f98c71f0534863de4600cf163 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { __, n__, s__, sprintf } from '../locale';

export default Vue => {
  Vue.mixin({
    methods: {
      /**
        Translates `text`

        @param text The text to be translated
        @returns {String} The translated text
      */
      __,
      /**
        Translate the text with a number
        if the number is more than 1 it will use the `pluralText` translation.
        This method allows for contexts, see below re. contexts

        @param text Singular text to translate (eg. '%d day')
        @param pluralText Plural text to translate (eg. '%d days')
        @param count Number to decide which translation to use (eg. 2)
        @returns {String} Translated text with the number replaced (eg. '2 days')
      */
      n__,
      /**
        Translate context based text
        Either pass in the context translation like `Context|Text to translate`
        or allow for dynamic text by doing passing in the context first & then the text to translate

        @param keyOrContext Can be either the key to translate including the context
                            (eg. 'Context|Text') or just the context for the translation
                            (eg. 'Context')
        @param key Is the dynamic variable you want to be translated
        @returns {String} Translated context based text
      */
      s__,
      sprintf,
    },
  });
};