-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlp-ugettext.html
61 lines (58 loc) · 1.8 KB
/
lp-ugettext.html
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<link rel="import" href="../bower_components/polymer/polymer.html">
<!--
lp-ugettext provides the language from browser via javascript
##### Example
<lp-ugettext></lp-ugettext>
<script>
var uget = document.querySelector('lp-ugettext');
console.log("My language is: " + uget.language);
@element lp-ugettext
@blurb Element providing the language from browser via javascript
@status beta
@homepage http://github.com/horacioibrahim/lp-ugettext
-->
<polymer-element name="lp-ugettext" attributes="">
<template>
</template>
<script>
(function () {
Polymer({
// define element prototype here
publish: {
language: 'en-US',
},
ready: function () {
this.language = this.getLanguage();
},
getLanguage: function () {
/**
* This code is copy/paste from http://stackoverflow.com/a/29106129/2283488
* Thanks Hamid!
*
*/
var nav = window.navigator,
browserLanguagePropertyKeys = ['language', 'browserLanguage', 'systemLanguage', 'userLanguage'],
i,
language;
// support for HTML 5.1 "navigator.languages"
if (Array.isArray(nav.languages)) {
for (i = 0; i < nav.languages.length; i++) {
language = nav.languages[i];
if (language && language.length) {
return language;
}
}
}
// support for other well known properties in browsers
for (i = 0; i < browserLanguagePropertyKeys.length; i++) {
language = nav[browserLanguagePropertyKeys[i]];
if (language && language.length) {
return language;
}
}
return null;
}
});
})();
</script>
</polymer-element>