Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: cms/sources.py

Issue 29317015: Issue 2625 - [cms] Crowdin synchronisation script (Closed)
Patch Set: Addressed Sebastian's feedback Created July 14, 2015, 12:50 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 # coding: utf-8 1 # coding: utf-8
2 2
3 # This file is part of the Adblock Plus web scripts, 3 # This file is part of the Adblock Plus web scripts,
4 # Copyright (C) 2006-2015 Eyeo GmbH 4 # Copyright (C) 2006-2015 Eyeo GmbH
5 # 5 #
6 # Adblock Plus is free software: you can redistribute it and/or modify 6 # Adblock Plus is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License version 3 as 7 # it under the terms of the GNU General Public License version 3 as
8 # published by the Free Software Foundation. 8 # published by the Free Software Foundation.
9 # 9 #
10 # Adblock Plus is distributed in the hope that it will be useful, 10 # Adblock Plus is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details. 13 # GNU General Public License for more details.
14 # 14 #
15 # You should have received a copy of the GNU General Public License 15 # You should have received a copy of the GNU General Public License
16 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 16 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
17 17
18 import codecs 18 import codecs
19 import collections
19 import ConfigParser 20 import ConfigParser
20 import json 21 import json
21 import os 22 import os
22 from StringIO import StringIO 23 from StringIO import StringIO
23 import subprocess 24 import subprocess
24 import urlparse 25 import urlparse
25 import zipfile 26 import zipfile
26 import logging 27 import logging
27 28
28 class Source: 29 class Source:
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 def has_locale(self, locale, page): 162 def has_locale(self, locale, page):
162 config = self.read_config() 163 config = self.read_config()
163 try: 164 try:
164 page = config.get("locale_overrides", page) 165 page = config.get("locale_overrides", page)
165 except ConfigParser.Error: 166 except ConfigParser.Error:
166 pass 167 pass
167 return self.has_file(self.locale_filename(locale, page)) 168 return self.has_file(self.locale_filename(locale, page))
168 169
169 def read_locale(self, locale, page): 170 def read_locale(self, locale, page):
170 default_locale = self.read_config().get("general", "defaultlocale") 171 default_locale = self.read_config().get("general", "defaultlocale")
171 if locale == default_locale: 172 result = collections.OrderedDict()
172 result = {} 173 if locale != default_locale:
173 else: 174 result.update(self.read_locale(default_locale, page))
174 result = dict(self.read_locale(default_locale, page))
175 175
176 if self.has_locale(locale, page): 176 if self.has_locale(locale, page):
177 filedata = self.read_file(self.locale_filename(locale, page)) 177 filedata = self.read_file(self.locale_filename(locale, page))
178 localedata = json.loads(filedata) 178 localedata = json.loads(filedata)
179 for key, value in localedata.iteritems(): 179 for key, value in localedata.iteritems():
180 result[key] = value["message"] 180 result[key] = value["message"]
181 181
182 return result 182 return result
183 183
184 # 184 #
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 path = os.path.join(dir, filename) 287 path = os.path.join(dir, filename)
288 if os.path.isfile(path): 288 if os.path.isfile(path):
289 result.append(relpath + filename) 289 result.append(relpath + filename)
290 elif os.path.isdir(path): 290 elif os.path.isdir(path):
291 do_list(path, relpath + filename + "/") 291 do_list(path, relpath + filename + "/")
292 do_list(self.get_path(subdir), "") 292 do_list(self.get_path(subdir), "")
293 return result 293 return result
294 294
295 def get_cache_dir(self): 295 def get_cache_dir(self):
296 return os.path.join(self._dir, "cache") 296 return os.path.join(self._dir, "cache")
OLDNEW
« cms/bin/translate.py ('K') | « cms/converters.py ('k') | cms/utils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld