summaryrefslogtreecommitdiffstats
path: root/js/app/services/language.coffee
blob: b0538768962c6c9f2a9c748f114bbd5e5c219906 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
###

ownCloud - News

@author Bernhard Posselt
@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
License as published by the Free Software Foundation; either
version 3 of the License, or any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU AFFERO GENERAL PUBLIC LICENSE for more details.

You should have received a copy of the GNU Affero General Public
License along with this library.  If not, see <http://www.gnu.org/licenses/>.

###

angular.module('News').factory 'Language', ->

	class Language

		constructor: ->
			@_language = 'en'
			@_langs = [
				'ar-ma'
				'ar'
				'bg'
				'ca'
				'cs'
				'cv'
				'da'
				'de'
				'el'
				'en-ca'
				'en-gb'
				'eo'
				'es'
				'et'
				'eu'
				'fi'
				'fr-ca'
				'fr'
				'gl'
				'he'
				'hi'
				'hu'
				'id'
				'is'
				'it'
				'ja'
				'ka'
				'ko'
				'lv'
				'ms-my'
				'nb'
				'ne'
				'nl'
				'pl'
				'pt-br'
				'pt'
				'ro'
				'ru'
				'sk'
				'sl'
				'sv'
				'th'
				'tr'
				'tzm-la'
				'tzm'
				'uk'
				'zh-cn'
				'zh-tw'
			]


		handle: (data) ->
			# fix broken server locales
			data = data.replace('_', '-').toLowerCase()

			# check if the first part is available, if so use this
			if not (data in @_langs)
				data = data.split('-')[0]

			# if its not available default to english
			if not (data in @_langs)
				data = 'en'

			@_language = data


		getLanguage: ->
			return @_language


		getMomentFromTimestamp: (timestamp) ->
			return moment.unix(timestamp).lang(@_language)


	return new Language()