kaputtnik has proposed merging 
lp:~franku/widelands-website/devs_and_locales_list into lp:widelands-website.

Requested reviews:
  Widelands Developers (widelands-dev)
Related bugs:
  Bug #1424072 in Widelands Website: "Automatically add translator credits to 
authors list"
  https://bugs.launchpad.net/widelands-website/+bug/1424072

For more details, see:
https://code.launchpad.net/~franku/widelands-website/devs_and_locales_list/+merge/266025

Related changes to the new translator files.

I tried to implement some checks to the keys of the translators files without 
breaking the website if there are some keys wrong. Theses checks are currently 
only applied to the translator keys "translator-list" and 
"your-language-name-in-english" (the two keys we need for the website). If one 
or noth keys are wrong, a little text is placed at the top of the "Development 
Team" list.

The keys of file "developers.json" are not tested... i tried it but it seems a 
bit overkill.
-- 
Your team Widelands Developers is requested to review the proposed merge of 
lp:~franku/widelands-website/devs_and_locales_list into lp:widelands-website.
=== modified file 'mainpage/views.py'
--- mainpage/views.py	2015-05-19 07:12:45 +0000
+++ mainpage/views.py	2015-07-27 19:11:30 +0000
@@ -2,9 +2,8 @@
 from django.template import RequestContext
 from settings import WIDELANDS_SVN_DIR
 from templatetags.wl_markdown import do_wl_markdown
-
+from operator import itemgetter
 import sys
-import re
 import json
 import os
 import os.path
@@ -51,38 +50,52 @@
     txt = ""
     transl_files = []
     transl_list = []
-    path = os.path.normpath(WIDELANDS_SVN_DIR + "txts/translators/")
+    path = os.path.normpath(WIDELANDS_SVN_DIR + "i18n/locales/")
     try:
         transl_files = os.listdir(path)
         if transl_files:
             for fname in transl_files:
-                if fname.endswith(".json"):
+                if fname.endswith(".json") :
                     with open(path + "/" + fname,"r") as f:
-                        json_data = json.load(f)["locale-translators"]
-    
-                    if json_data["translator-list"] != "translator-credits":
+                        json_data = json.load(f)
+                    
+                    try:
+                        if json_data["translator-list"] != "translator-credits":
                             transl_list.append(json_data)
+                    except KeyError:
+                        transl_list = ["KeyError"]
+                        
+            # Check for the other key we need
+            for d in transl_list:
+                if not "your-language-name-in-english" in d:
+                    transl_list = ["KeyError"]
+            
+            # No KeyError -> Sort the list
+            if "KeyError" in transl_list:
+                txt = "Some Translator key is wrong, please contact the Developers. \n"
+            else:
+                transl_list.sort( key=itemgetter("your-language-name-in-english"))
+
         else:
-            txt = "No files for translators found!"
+            txt = "No files for translators found!\n"
     except OSError:
-        txt = txt + "Couldn't find translators directory!"
+        txt = txt + "Couldn't find translators directory!\n"
 
                
     # Get other developers, put in the translators list
     # at given position and prepaire all for wl_markdown
     try:
-        f = open(WIDELANDS_SVN_DIR + "txts/developers.json", "r")
-        json_data = json.load(f)["developers"]
-        f.close()
-    
+        with open(WIDELANDS_SVN_DIR + "txts/developers.json", "r") as f:
+            json_data = json.load(f)["developers"]
+
         for head in json_data:
             # Add first header
             txt = txt + "##" + head["heading"] + "\n"
-            # Inserting Translators
-            if head["heading"] == "Translators":
+            # Inserting Translators if there was no error
+            if head["heading"] == "Translators" and "KeyError" not in transl_list:
                 for values in (transl_list):
                     # Add subheader for locale
-                    txt = txt + "### " + values["your-language-name"] + "\n"
+                    txt = txt + "### " + values["your-language-name-in-english"] + "\n"
                     # Prepaire the names for wl_markdown
                     txt = txt + "* " + values["translator-list"].replace('\n', '\n* ') + "\n"
                     

_______________________________________________
Mailing list: https://launchpad.net/~widelands-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to