Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
workloadmgr / fsscripts / tvault-filemanager / utils / generate-lang.py
Size: Mime:
#!/usr/bin/python2.6


# Generate lang files with en.js file as reference
# if key does not exist in json file, the key and value are added from reference file (en.js)
# Usage : $ python ./utils/generate-lang.py


class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'

    def disable(self):
        self.HEADER = ''
        self.OKBLUE = ''
        self.OKGREEN = ''
        self.WARNING = ''
        self.FAIL = ''
        self.ENDC = ''


import os
import io
import json
import codecs
import sys

fmRootFolder = os.path.dirname(
    os.path.dirname(
        os.path.realpath(__file__))) + "/"

os.chdir(fmRootFolder + "scripts/languages/")  # set working directory


filesList = list()

print(bcolors.HEADER + "\nFiles to translate :")
print("-------------------------------------------\n" + bcolors.ENDC)

for files in os.listdir("."):
    # we exclude 'en.js' file
    if files.endswith(".js") and files != 'en.js':
        filesList.append(files)  # we populate filesList
        print(bcolors.OKBLUE + files + bcolors.ENDC)  # display file names

print(bcolors.HEADER + "-------------------------------------------\n" + bcolors.ENDC)


with open(fmRootFolder + "scripts/languages/" + 'en.js') as f:
    default_json = json.load(f)

# we loop on JS languages files
# if key does not exist in json file, the key and value are added from
# reference file (en.js)
for index, item in enumerate(filesList):
        # print index, item
    with open(fmRootFolder + "scripts/languages/" + item) as f:
        filename = fmRootFolder + "scripts/languages/" + item
        print(bcolors.OKGREEN + str(index) + ") Writing file : " + filename + bcolors.ENDC)
        current = json.load(f)  # we get the current JSON file content

        # merging 2 dictionnaries
        data = dict(list(default_json.items()) + list(current.items()))

        # we calculate differences between lists
        diff = set(default_json.keys()) - set(current.keys())
        if len(diff) == 0:
            print(bcolors.OKBLUE + "... no keys added." + bcolors.ENDC)
        else:
            print(bcolors.WARNING + "... keys " + bcolors.OKBLUE + ",".join(diff) + bcolors.WARNING + " were added." + bcolors.ENDC)

        # get a string with JSON encoding the list
        data = json.dumps(data)

        # we use codecs to keep utf-8 encoding without escaped \uXXXX
        filename = fmRootFolder + "scripts/languages/" + item
        file = codecs.open(filename, mode='w', encoding='utf-8')
        # magic happens here to make it pretty-printed
        file.write(
            json.dumps(
                json.loads(data),
                indent=4,
                sort_keys=True,
                ensure_ascii=False))
        file.close()

        print(bcolors.OKBLUE + "... file saved." + bcolors.ENDC)