Skip to content

Instantly share code, notes, and snippets.

@exlee
Last active May 10, 2022 01:19
Show Gist options
  • Save exlee/9d09fa8c3032713eae3b to your computer and use it in GitHub Desktop.
Save exlee/9d09fa8c3032713eae3b to your computer and use it in GitHub Desktop.
ember: dynamic language in templates. use LanguageController?
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
switchLanguage: function() {
var t = this.get('translator');
if(t.lang === "t1") {
t.changeLanguage("t2");
} else {
t.changeLanguage("t1");
}
}
},
appName:'Ember Twiddle',
translator: Ember.inject.service()
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
{{translator.current.a}}
{{translator.current.b}}
<button {{action 'switchLanguage'}}>Switch lang</button>
<br>
<br>
import Ember from "ember";
export default Ember.Service.extend({
lang: 't1', // For reference
current: {},
init: function() {
this.current = this.translations[this.lang];
},
changeLanguage: function(lang) {
this.set('lang', lang);
this.set('current', this.translations[lang]);
},
translations: {
t1: {a: 'T1:A', b: 'T1:B'},
t2: {a: 'T2:A', b: 'T2:B'}
}
});
{
"version": "0.4.9",
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.9/ember.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/1.13.11/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.9/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment