1- #---------------------------------------------------------------
1+ #!/usr/bin/python
2+ # -*- coding: utf-8 -*-
3+
4+ # --------------------------------------------------------------
25# >>> TABLE OF CONTENTS:
3- #- --------------------------------------------------------------
6+ # --------------------------------------------------------------
47# 1.0 Import modules
58# 2.0 Lower camel case
69# 3.0 Get list of files
710# 4.0 Add item
811# 5.0 Remove item
912# 6.0 Decode
10- # 7.0 Initialization
11- #---------------------------------------------------------------
13+ # 7.0 Add locales
14+ # 8.0 Initialization
15+ # --------------------------------------------------------------
1216
13- #- --------------------------------------------------------------
17+ # --------------------------------------------------------------
1418# 1.0 IMPORT MODULES
15- #- --------------------------------------------------------------
19+ # --------------------------------------------------------------
1620
21+ import io
1722import json
1823import os
1924import pathlib
2025import re
26+ import sys
2127
2228
23- #- --------------------------------------------------------------
29+ # --------------------------------------------------------------
2430# 2.0 LOWER CAMEL CASE
25- #- --------------------------------------------------------------
31+ # --------------------------------------------------------------
2632
2733def lowerCamelCase (string ):
28- string = re .sub (r"(-|_)+" , " " , string ).title ()
29- string = re .sub (r"[^a-zA-Z0-9]" , "" , string )
30-
34+ string = re .sub (r"(-|_)+" , ' ' , string ).title ()
35+ string = re .sub (r"[^a-zA-Z0-9]" , '' , string )
36+
3137 return string [0 ].lower () + string [1 :]
3238
3339
34- #- --------------------------------------------------------------
40+ # --------------------------------------------------------------
3541# 3.0 GET LIST OF FILES
36- #- --------------------------------------------------------------
42+ # --------------------------------------------------------------
3743
3844def getListOfFiles (dirName ):
3945 allFiles = list ()
@@ -53,79 +59,150 @@ def getListOfFiles(dirName):
5359 return allFiles
5460
5561
56- #- --------------------------------------------------------------
62+ # --------------------------------------------------------------
5763# 4.0 ADD ITEM
58- #- --------------------------------------------------------------
64+ # --------------------------------------------------------------
5965
6066def addItem (allFiles ):
61- message = input (" Enter your message: " )
67+ message = input (' Enter your message: ' )
6268 camelized_message = lowerCamelCase (message )
63-
69+
6470 for keyFile in allFiles :
65- with open (keyFile , "r+" ) as json_file :
71+ with open (keyFile , 'r+' ) as json_file :
6672 data = json .load (json_file )
67-
68- if ((camelized_message in data ) == False ) :
69- data [camelized_message ] = {
70- "message" : message
71- }
72-
73+
74+ if (camelized_message in data ) == False :
75+ data [camelized_message ] = {'message' : message }
76+
7377 json_file .seek (0 )
74- json .dump (data , json_file , ensure_ascii = False , indent = 4 , sort_keys = True )
78+ json .dump (data , json_file , ensure_ascii = False , indent = 4 ,
79+ sort_keys = True )
7580 json_file .truncate ()
7681
7782
78- #- --------------------------------------------------------------
83+ # --------------------------------------------------------------
7984# 5.0 REMOVE ITEM
80- #- --------------------------------------------------------------
85+ # --------------------------------------------------------------
8186
8287def removeItem (allFiles ):
83- key = input (" Enter your key (lowerCamelCase): " )
84-
88+ key = input (' Enter your key (lowerCamelCase): ' )
89+
8590 for keyFile in allFiles :
86- with open (keyFile , "r+" ) as json_file :
91+ with open (keyFile , 'r+' ) as json_file :
8792 data = json .load (json_file )
88-
93+
8994 if data [key ]:
9095 del data [key ]
91-
96+
9297 json_file .seek (0 )
93- json .dump (data , json_file , ensure_ascii = False , indent = 4 , sort_keys = True )
98+ json .dump (data , json_file , ensure_ascii = False , indent = 4 ,
99+ sort_keys = True )
94100 json_file .truncate ()
95101
96102
97- #- --------------------------------------------------------------
103+ # --------------------------------------------------------------
98104# 6.0 DECODE
99- #- --------------------------------------------------------------
105+ # --------------------------------------------------------------
100106
101107def decodeCharacters (allFiles ):
102108 for keyFile in allFiles :
103- with open (keyFile , "r+" ) as json_file :
109+ with open (keyFile , 'r+' ) as json_file :
104110 data = json .load (json_file )
105-
111+
106112 json_file .seek (0 )
107- json .dump (data , json_file , ensure_ascii = False , indent = 4 , sort_keys = True )
113+ json .dump (data , json_file , ensure_ascii = False , indent = 4 ,
114+ sort_keys = True )
108115 json_file .truncate ()
109116
110117
111- #---------------------------------------------------------------
112- # 7.0 INITIALIZATION
113- #---------------------------------------------------------------
114-
115- allFiles = getListOfFiles ("../_locales/" )
116-
117- operation = input ("""
118- --------------------------------
119- Add item: 1
120- Remove item: 2
121- Decode: 3
122- --------------------------------
123-
124- Enter number: """ )
125-
126- if operation == "1" :
127- addItem (allFiles )
128- elif operation == "2" :
129- removeItem (allFiles )
130- elif operation == "3" :
131- decodeCharacters (allFiles )
118+ # --------------------------------------------------------------
119+ # 7.0 ADD LOCALES
120+ # --------------------------------------------------------------
121+
122+ def addLocales ():
123+ locales = [
124+ 'am' ,
125+ 'ar' ,
126+ 'bg' ,
127+ 'bn' ,
128+ 'ca' ,
129+ 'cs' ,
130+ 'da' ,
131+ 'de' ,
132+ 'el' ,
133+ 'en' ,
134+ 'es' ,
135+ 'et' ,
136+ 'fa' ,
137+ 'fi' ,
138+ 'fil' ,
139+ 'fr' ,
140+ 'gu' ,
141+ 'he' ,
142+ 'hi' ,
143+ 'hin' ,
144+ 'hr' ,
145+ 'hu' ,
146+ 'id' ,
147+ 'it' ,
148+ 'ja' ,
149+ 'kn' ,
150+ 'ko' ,
151+ 'lt' ,
152+ 'lv' ,
153+ 'ml' ,
154+ 'mr' ,
155+ 'ms' ,
156+ 'nb_NO' ,
157+ 'nl' ,
158+ 'no' ,
159+ 'pl' ,
160+ 'pt_BR' ,
161+ 'pt_PT' ,
162+ 'ro' ,
163+ 'ru' ,
164+ 'sk' ,
165+ 'sl' ,
166+ 'sr' ,
167+ 'sv' ,
168+ 'sw' ,
169+ 'ta' ,
170+ 'te' ,
171+ 'th' ,
172+ 'tr' ,
173+ 'uk' ,
174+ 'vi' ,
175+ 'zh_CN' ,
176+ 'zh_TW'
177+ ]
178+
179+ for locale in locales :
180+ if not os .path .exists ('../_locales/' + locale ):
181+ pathlib .Path ('../_locales/' + locale ).mkdir (parents = True ,
182+ exist_ok = True )
183+
184+ file = io .open ('../_locales/' + locale + '/messages.json' ,
185+ mode = 'w' , encoding = 'utf-8' )
186+
187+ file .write ('{}' )
188+
189+ file .close ()
190+
191+ print (locale )
192+
193+
194+ # --------------------------------------------------------------
195+ # 8.0 INITIALIZATION
196+ # --------------------------------------------------------------
197+
198+ allFiles = getListOfFiles ('../_locales/' )
199+
200+ for arg in sys .argv :
201+ if arg == '-add' :
202+ addItem (allFiles )
203+ elif arg == '-remove' :
204+ removeItem (allFiles )
205+ elif arg == '-decode' :
206+ decodeCharacters (allFiles )
207+ elif arg == '-generate' :
208+ addLocales ()
0 commit comments