selectize.js icon indicating copy to clipboard operation
selectize.js copied to clipboard

i18n

Open marcioaguiar opened this issue 12 years ago • 18 comments

Suport for multiple languages.

Text to create new item is hardcoded english.

marcioaguiar avatar Jun 05 '13 14:06 marcioaguiar

I think this would be an easy thing to address... might as well. In the meantime, you can always provide a render.option_create function in the settings to custom-render that dropdown item.

brianreavis avatar Jun 05 '13 15:06 brianreavis

+1

nurikabe avatar May 23 '14 11:05 nurikabe

+1

raulromanp avatar Oct 16 '14 12:10 raulromanp

+1

danielfariati avatar Nov 20 '14 19:11 danielfariati

+1

deepugn avatar Dec 17 '14 11:12 deepugn

+1

iainvdw avatar Aug 03 '15 14:08 iainvdw

If anyone is wondering how to change it as @brianreavis suggested, just do something like this:

$('.my-select').selectize({
  create: true,
  render: {
    option_create: function(data, escape) {
      var addString = 'Adicionar';
      return '<div class="create">' + addString + ' <strong>' + escape(data.input) + '</strong>&hellip;</div>';
    }
  }
});

klzns avatar Sep 02 '15 18:09 klzns

As someone who's native tongue is French, I'd be inclined to accept a PR making this simpler. We could add an option allowing you to spectify a string (eg. addString: "Add %{name}") or a function addString: function(word){ I18n.t("selectize.add", word)}.

joallard avatar Jan 03 '16 05:01 joallard

+1

Oxicode avatar May 04 '16 16:05 Oxicode

I'll go even further in this, the function would be called with two params, function(word, key), allowing one to do:

addString: I18n.t

instead of:

addString: function(word, key){ I18n.t(word, key) }

Default: I18n.t if exists (or whatever is the JS convention for translation), or "Add %{name}".

or something automagic like that.

joallard avatar May 04 '16 17:05 joallard

  • [x] Figure out strings that can be translated
  • [x] Figure out I18n conventions in JS and sensible defaults
  • [x] Begin writing tests
  • [ ] Finish writing tests
  • [ ] Write the code

joallard avatar May 09 '16 19:05 joallard

Here's what I see:

describe("I18n", function(){
    describe("dictionary syntax", function(){
        var s = Selectize.init({
            dictionary: {
                addThis: "Ajouter %{elem}"
            }
        })

        expect(s.i18n('addThis', {elem: 'ceci'}).to.equal("Ajouter ceci")
    })

    describe("delegate to i18n library", function(){
        var I18n = {
            t: function(key, params) {
                return "Ajouter " + params.elem;
            }
        }

        var s = Selectize.init({
            i18n: I18n.t
        });

        expect(s.i18n('addThis', {elem: 'ceci'})).to.equal("Ajouter ceci")
    })

    describe("default i18n library", function(){
        var I18n = {
            t: function(key, params) {
                return "Ajouter " + params.elem;
            }
        }

        var s = Selectize.init({
            // i18n: default
        });

        expect(s.i18n('addThis', {elem: 'ceci'})).to.equal("Ajouter ceci")
    })
})

joallard avatar May 09 '16 19:05 joallard

Libraries i18next, I18n-js and Polyglot all use syntax .t()

joallard avatar Jul 20 '16 23:07 joallard

closing stale issues older than one year. If this issue was closed in error please message the maintainers. All issues must include a proper title, description, and examples.

risadams avatar Nov 12 '20 12:11 risadams

Is it possible to translate things meanwhile?

For example, remove-single has "remove" in the title. This would have to be translated for my use case.

image

pixelbart avatar Jun 20 '22 08:06 pixelbart

It's been a while I haven't touched this project, but I would imagine a PR that makes it possible to specify the language string in the options would be a great start.

Oops, actually that's what #902 proposed and I closed the PR in favor of this one. (harsh.) Funny how I don't agree with my past self anymore, I think something along the lines of #902 is a good idea, maybe a bit more fleshed out. But again, I'm not the one who puts much work in this project anymore so that's only my own personal opinion!

joallard avatar Jun 25 '22 00:06 joallard

always welcome a PR, my time is stretched these days too, and I fully admit that my i18n skills are underdeveloped. I agree that #902 at least feels more simple to implement, but I would need to do some research before jumping in myself

risadams avatar Jun 30 '22 00:06 risadams