From f3048defc0c0a00966fee82225fceed2d952d781 Mon Sep 17 00:00:00 2001 From: Brian Read Date: Mon, 26 Aug 2024 14:26:22 +0100 Subject: [PATCH] Use ruff to re-format --- Check_Translation.py | 220 ++++++---- Lex2Po.py | 328 +++++++------- Po2Lex.py | 41 +- create_lex_file.py | 41 ++ general_tr.lex | 129 ++++++ missing_translations_Backup.json | 463 ++++++++++++++++++++ missing_translations_Bugreport.json | 449 ++++++++++++++++++++ missing_translations_Clamav.json | 27 ++ missing_translations_Datetime.json | 144 +++++++ missing_translations_Directory.json | 66 +++ missing_translations_Domains.json | 83 ++++ missing_translations_Emailsettings.json | 361 ++++++++++++++++ missing_translations_General.json | 519 +++++++++++++++++++++++ missing_translations_Groups.json | 41 ++ missing_translations_Hostentries.json | 125 ++++++ missing_translations_Ibays.json | 100 +++++ missing_translations_Initial.json | 31 ++ missing_translations_Localnetworks.json | 100 +++++ missing_translations_Login.json | 3 + missing_translations_Manual.json | 29 ++ missing_translations_Portforwarding.json | 125 ++++++ missing_translations_Printers.json | 149 +++++++ missing_translations_Proxy.json | 53 +++ missing_translations_Pseudonyms.json | 154 +++++++ missing_translations_Qmailanalog.json | 66 +++ missing_translations_Quota.json | 87 ++++ missing_translations_Reboot.json | 38 ++ missing_translations_Remoteaccess.json | 184 ++++++++ missing_translations_Review.json | 125 ++++++ missing_translations_Support.json | 27 ++ missing_translations_Swttheme.json | 1 + missing_translations_Useraccounts.json | 167 ++++++++ missing_translations_Userpassword.json | 27 ++ missing_translations_Viewlogfiles.json | 52 +++ missing_translations_Workgroup.json | 43 ++ missing_translations_Yum.json | 99 +++++ 36 files changed, 4451 insertions(+), 246 deletions(-) create mode 100644 create_lex_file.py create mode 100644 general_tr.lex create mode 100644 missing_translations_Backup.json create mode 100644 missing_translations_Bugreport.json create mode 100644 missing_translations_Clamav.json create mode 100644 missing_translations_Datetime.json create mode 100644 missing_translations_Directory.json create mode 100644 missing_translations_Domains.json create mode 100644 missing_translations_Emailsettings.json create mode 100644 missing_translations_General.json create mode 100644 missing_translations_Groups.json create mode 100644 missing_translations_Hostentries.json create mode 100644 missing_translations_Ibays.json create mode 100644 missing_translations_Initial.json create mode 100644 missing_translations_Localnetworks.json create mode 100644 missing_translations_Login.json create mode 100644 missing_translations_Manual.json create mode 100644 missing_translations_Portforwarding.json create mode 100644 missing_translations_Printers.json create mode 100644 missing_translations_Proxy.json create mode 100644 missing_translations_Pseudonyms.json create mode 100644 missing_translations_Qmailanalog.json create mode 100644 missing_translations_Quota.json create mode 100644 missing_translations_Reboot.json create mode 100644 missing_translations_Remoteaccess.json create mode 100644 missing_translations_Review.json create mode 100644 missing_translations_Support.json create mode 100644 missing_translations_Swttheme.json create mode 100644 missing_translations_Useraccounts.json create mode 100644 missing_translations_Userpassword.json create mode 100644 missing_translations_Viewlogfiles.json create mode 100644 missing_translations_Workgroup.json create mode 100644 missing_translations_Yum.json diff --git a/Check_Translation.py b/Check_Translation.py index 37a7bb9..3e0d873 100644 --- a/Check_Translation.py +++ b/Check_Translation.py @@ -1,101 +1,161 @@ import os import argparse import re +import json # Import the json module -do_not_need_translating = ['AM','PM','AM/PM','nfs', 'cifs'] +do_not_need_translating = ["AM", "PM", "AM/PM", "nfs", "cifs"] + + +def infer_prefix(entries, filename, IsGeneral=False): + """ + Infer the prefix from entries that contain it, fallback to the first 3 characters of the filename. + """ + if IsGeneral: + return "" # No prefix for General items + for key in entries.keys(): + match = re.match(r"(.*?_)?.*", key) + if match: + prefix = match.group(1) + if prefix: + print(f"Found prefix:{prefix} {filename}") + return prefix + # If no prefix is found, return the first 3 characters of the filename + return filename.stem[:3].lower() + "_" -def infer_prefix(entries, filename,IsGeneral=False): - """ - Infer the prefix from entries that contain it, fallback to the first 3 characters of the filename. - """ - if IsGeneral: - return "" #No prefix for General items - for key in entries.keys(): - match = re.match(r"(.*?_)?.*", key) - if match: - prefix = match.group(1) - if prefix: - print(f"Found prefix:{prefix} {filename}") - return prefix - # If no prefix is found, return the first 3 characters of the filename - return filename.stem[:3].lower() + "_" def find_lex_files(modulename): - base_locale_path = f"/home/brianr//Documents/smeserver-manager-locale/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/{modulename}/" - base_en_path = f"/home/brianr//Documents/smeserver-manager/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/{modulename}/" + base_locale_path = f"/home/brianr//Documents/smeserver-manager-locale/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/{modulename}/" + base_en_path = f"/home/brianr//Documents/smeserver-manager/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/{modulename}/" - # Get all .lex files in the specified directory - lex_files = [f for f in os.listdir(base_locale_path) if f.endswith('.lex')] - # Find the corresponding _en.lex file - en_file = next((f for f in os.listdir(base_en_path) if f.endswith('_en.lex')), None) - + # Get all .lex files in the specified directory + lex_files = [f for f in os.listdir(base_locale_path) if f.endswith(".lex")] + # Find the corresponding _en.lex file + en_file = next((f for f in os.listdir(base_en_path) if f.endswith("_en.lex")), None) - # Assuming the _en.lex file exists - if en_file is None: - print(f"No _en.lex file found for module: {modulename}") - return + # Assuming the _en.lex file exists + if en_file is None: + print(f"No _en.lex file found for module: {modulename}") + return - # Read translation pairs from the _en file - translations = {} - with open(os.path.join(base_en_path, en_file), 'r', encoding='utf-8') as en_f: - for line in en_f: - if '=>' in line: - key, message = line.split('=>', 1) - translations[key.strip().strip("'")] = message.strip().strip(",").strip("'") + # Read translation pairs from the _en file + translations = {} + with open(os.path.join(base_en_path, en_file), "r", encoding="utf-8") as en_f: + for line in en_f: + if "=>" in line: + key, message = line.split("=>", 1) + translations[key.strip().strip("'")] = ( + message.strip().strip(",").strip("'") + ) - module_prefix = infer_prefix(translations,en_file); + module_prefix = infer_prefix(translations, en_file) # Dictionary to accumulate missing translations - missing_translations = {} - key_not_in_en = {} + missing_translations = {} + key_not_in_en = {} - # Compare against each lex file in the locale directory - for lex_file in lex_files: - #Skip any english lang file in there (there might be one) - if lex_file.endswith('_en.lex'): - continue - with open(os.path.join(base_locale_path, lex_file), 'r', encoding='utf-8') as loc_f: - print(f"File:{lex_file}") - language_code = lex_file.split('.')[0][-2:] # Extracting language code from filename - - # Ensure the language code entry in the dictionary - if language_code not in missing_translations: - missing_translations[language_code] = [] # Initialize an empty list for this language code - if language_code not in key_not_in_en: - key_not_in_en[language_code] = [] # Initialize an empty list for this language code + # Compare against each lex file in the locale directory + for lex_file in lex_files: + # Skip any english lang file in there (there might be one) + if lex_file.endswith("_en.lex"): + continue + with open( + os.path.join(base_locale_path, lex_file), "r", encoding="utf-8" + ) as loc_f: + print(f"File:{lex_file}") + language_code = lex_file.split(".")[0][ + -2: + ] # Extracting language code from filename - for line in loc_f: - if '=>' in line: - key, message = line.split('=>', 1) - key = key.strip().strip("'") - message = message.strip().strip(",").strip("'") - - # Remove the module prefix to check against do_not_need_translating - stripped_key = key[len(module_prefix):] # Remove the prefix and the underscore + # Ensure the language code entry in the dictionary + if language_code not in missing_translations: + missing_translations[ + language_code + ] = [] # Initialize an empty list for this language code + if language_code not in key_not_in_en: + key_not_in_en[ + language_code + ] = [] # Initialize an empty list for this language code - # Checking for missing translations - if stripped_key not in do_not_need_translating: # Check without prefix - if key in translations: - if message == translations[key] or message == '': - #print(f"Missing translation in module '{modulename}', ({language_code})', key '{key}'") - missing_translations[language_code].append(key) - else: - #print(f"Key '{key}' not found in english lex for module '{modulename} ({language_code})'.") - key_not_in_en[language_code].append(key) - - for lang_code, keys in missing_translations.items(): - if keys: - print(f"Missing translations for module '{modulename}', ({lang_code}) - #{len(keys)}:") - print(keys) + for line in loc_f: + if "=>" in line: + key, message = line.split("=>", 1) + key = key.strip().strip("'") + message = message.strip().strip(",").strip("'") + + # Remove the module prefix to check against do_not_need_translating + stripped_key = key[ + len(module_prefix) : + ] # Remove the prefix and the underscore + + # Checking for missing translations + if ( + stripped_key not in do_not_need_translating + ): # Check without prefix + if key in translations: + if message == translations[key] or message == "": + # print(f"Missing translation in module '{modulename}', ({language_code})', key '{key}'") + missing_translations[language_code].append(key) + else: + # print(f"Key '{key}' not found in english lex for module '{modulename} ({language_code})'.") + key_not_in_en[language_code].append(key) + + for lang_code, keys in missing_translations.items(): + if keys: + print( + f"Missing translations for module '{modulename}', ({lang_code}) - #{len(keys)}:" + ) + # print(keys) + + for lang_code, keys in key_not_in_en.items(): + if keys: + print( + f"Keys not found in english lex for module '{modulename} ({lang_code}) - #{len(keys)}'." + ) + print(keys) + + # Remove keys that are not found in English lex from translation files + for lex_file in lex_files: + if lex_file.endswith("_en.lex"): + continue + print(f"File:{lex_file}") + language_code = lex_file.split(".")[0][ + -2: + ] # Extracting language code from filename + all_lines = [] + with open( + os.path.join(base_locale_path, lex_file), "r", encoding="utf-8" + ) as loc_f: + all_lines = loc_f.readlines() + + # Filter out missing keys based on the key_not_in_en dictionary + deleted = 0 + with open( + os.path.join(base_locale_path, lex_file), "w", encoding="utf-8" + ) as loc_f: + for line in all_lines: + if "=>" in line: + key, message = line.split("=>", 1) + key = key.strip().strip("'") # Get the key without quotes + # Only write back lines that are not in the key_not_in_en list + if key not in key_not_in_en.get(language_code, []): + loc_f.write(line) + else: + deleted += 1 + print(f"Updated {lex_file}, removed {deleted} keys.") + # Write the missing_translations dictionary to a JSON file + output_filename = f"missing_translations_{modulename}.json" + with open(output_filename, "w", encoding="utf-8") as json_file: + json.dump(missing_translations, json_file, ensure_ascii=False, indent=4) + print(f"Wrote missing translations to {output_filename}") - for lang_code, keys in key_not_in_en.items(): - if keys: - print(f"Keys not found in english lex for module '{modulename} ({lang_code}) - #{len(keys)}'.") - print(keys) if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Check for missing translations in lex files.") - parser.add_argument("modulename", help="The name of the module to check translations for.") - + parser = argparse.ArgumentParser( + description="Check for missing translations in lex files." + ) + parser.add_argument( + "modulename", help="The name of the module to check translations for." + ) + args = parser.parse_args() find_lex_files(args.modulename) diff --git a/Lex2Po.py b/Lex2Po.py index 6ad7dbd..abaa6ac 100644 --- a/Lex2Po.py +++ b/Lex2Po.py @@ -5,31 +5,38 @@ import re import shutil # Define paths -SOURCE_LOCALE_DIR = Path("/home/brianr/Documents/smeserver-manager-locale/root/usr/share/smanager/lib/SrvMngr/I18N/Modules") -SOURCE_MANAGER_DIR = Path("/home/brianr/Documents/smeserver-manager/root/usr/share/smanager/lib/SrvMngr/I18N/Modules") +SOURCE_LOCALE_DIR = Path( + "/home/brianr/Documents/smeserver-manager-locale/root/usr/share/smanager/lib/SrvMngr/I18N/Modules" +) +SOURCE_MANAGER_DIR = Path( + "/home/brianr/Documents/smeserver-manager/root/usr/share/smanager/lib/SrvMngr/I18N/Modules" +) + def extract_language_from_filename(filename): - match = re.search(r'[_-]([a-z]{2}(?:-[a-z]{2})?)\..*', filename, re.IGNORECASE) + match = re.search(r"[_-]([a-z]{2}(?:-[a-z]{2})?)\..*", filename, re.IGNORECASE) if match: return match.group(1).replace("-", "_").lower() return None + def parse_lex_file(lex_file): - entries = {} - with open(lex_file, 'r', encoding='utf-8') as file: - content = file.read() - # Use regex to find all key-value pairs, handling quotes around keys optionally - # matches = re.finditer(r""" - # (['"]?) # Optional opening quote for the key - # ([^'" \t]+?) # The key itself (excluding quotes and whitespace) - # \1 # Optional closing quote matching the opening quote - # \s*=>\s* # The delimiter - # ' # Opening quote for the value - # (.*?) # The value (non-greedy to capture minimal text) - # ' # Closing quote for the value - # \s*,\s* # Trailing comma and optional whitespace - # """, content, re.DOTALL | re.VERBOSE) - matches = re.finditer(r""" + entries = {} + with open(lex_file, "r", encoding="utf-8") as file: + content = file.read() + # Use regex to find all key-value pairs, handling quotes around keys optionally + # matches = re.finditer(r""" + # (['"]?) # Optional opening quote for the key + # ([^'" \t]+?) # The key itself (excluding quotes and whitespace) + # \1 # Optional closing quote matching the opening quote + # \s*=>\s* # The delimiter + # ' # Opening quote for the value + # (.*?) # The value (non-greedy to capture minimal text) + # ' # Closing quote for the value + # \s*,\s* # Trailing comma and optional whitespace + # """, content, re.DOTALL | re.VERBOSE) + matches = re.finditer( + r""" (['"]?) # Optional opening quote for the key (.*?) # The key itself (including spaces and any characters) \1 # Optional closing quote matching the opening quote @@ -38,34 +45,40 @@ def parse_lex_file(lex_file): (.*?) # The value (non-greedy to capture minimal text) ' # Closing quote for the value \s*,\s* # Trailing comma and optional whitespace - """, content, re.DOTALL | re.VERBOSE) - for match in matches: - key, value = match.group(2).strip(), match.group(3).strip() - entries[key] = value.replace("\\n", "\n") - return entries + """, + content, + re.DOTALL | re.VERBOSE, + ) + for match in matches: + key, value = match.group(2).strip(), match.group(3).strip() + entries[key] = value.replace("\\n", "\n") + return entries + def save_lex_file(entries, lex_file): - with open(lex_file, 'w', encoding='utf-8') as file: + with open(lex_file, "w", encoding="utf-8") as file: for key, value in entries.items(): escaped_value = value.replace("'", "\\'") # Escape single quotes file.write(f"'{key}' => '{escaped_value}',\n") -def infer_prefix(entries, filename,IsGeneral=False): - """ - Infer the prefix from entries that contain it, fallback to the first 3 characters of the filename. - """ - if IsGeneral: - return "" #No prefix for General items - for key in entries.keys(): - match = re.match(r"(.*?_)?.*", key) - if match: - prefix = match.group(1) - if prefix: - print(f"Found prefix:{prefix} {filename}") - return prefix - # If no prefix is found, return the first 3 characters of the filename - return filename.stem[:3].lower() + "_" - + +def infer_prefix(entries, filename, IsGeneral=False): + """ + Infer the prefix from entries that contain it, fallback to the first 3 characters of the filename. + """ + if IsGeneral: + return "" # No prefix for General items + for key in entries.keys(): + match = re.match(r"(.*?_)?.*", key) + if match: + prefix = match.group(1) + if prefix: + print(f"Found prefix:{prefix} {filename}") + return prefix + # If no prefix is found, return the first 3 characters of the filename + return filename.stem[:3].lower() + "_" + + def extract_module_name(file_path): # Convert the file path to a Path object path = Path(file_path) @@ -74,151 +87,165 @@ def extract_module_name(file_path): # Capitalize the first letter return module_name.capitalize() -def ensure_prefix(entries, prefix,file_path): - """ - Ensure each msgctxt within the entries has the given prefix. - """ - updated_entries = {} - module_name = extract_module_name(file_path) - for key, value in entries.items(): - if not key.startswith(prefix): - updated_key = f"{prefix}{key}" - print(f"Adding prefix: {key} -> {updated_key} ({module_name})") - updated_entries[updated_key] = value - else: - updated_entries[key] = value - return updated_entries -def convert_lex_to_po(lex_file, po_file, en_entries, general_en_entries,IsGeneral=False): - translated_entries = parse_lex_file(lex_file) - language_code = extract_language_from_filename(po_file.name) +def ensure_prefix(entries, prefix, file_path): + """ + Ensure each msgctxt within the entries has the given prefix. + """ + updated_entries = {} + module_name = extract_module_name(file_path) + for key, value in entries.items(): + if not key.startswith(prefix): + updated_key = f"{prefix}{key}" + print(f"Adding prefix: {key} -> {updated_key} ({module_name})") + updated_entries[updated_key] = value + else: + updated_entries[key] = value + return updated_entries - # Infer prefix from original en_entries and ensure all entries have this prefix - prefix = infer_prefix(en_entries, Path(lex_file),IsGeneral) - en_entries = ensure_prefix(en_entries, prefix,lex_file) - translated_entries = ensure_prefix(translated_entries, prefix,lex_file) - po = polib.POFile() - po.metadata = { - 'Project-Id-Version': '1.0', - 'Language': language_code, - 'Content-Type': 'text/plain; charset=utf-8', - } +def convert_lex_to_po( + lex_file, po_file, en_entries, general_en_entries, IsGeneral=False +): + translated_entries = parse_lex_file(lex_file) + language_code = extract_language_from_filename(po_file.name) - new_entries = [] + # Infer prefix from original en_entries and ensure all entries have this prefix + prefix = infer_prefix(en_entries, Path(lex_file), IsGeneral) + en_entries = ensure_prefix(en_entries, prefix, lex_file) + translated_entries = ensure_prefix(translated_entries, prefix, lex_file) - for msgctxt, msgstr in translated_entries.items(): - msgid = en_entries.get(msgctxt, "") # Find the original text using spacey version of msgctxt (Msg ID) - if not msgid: - print(f"Warning: Could not find original text for Msg ID {msgctxt} ({language_code})") - # See if in General - msgid = general_en_entries.get(msgctxt, "") - if not msgid: - msgid = "Placeholder for missing original text - this means that \ + po = polib.POFile() + po.metadata = { + "Project-Id-Version": "1.0", + "Language": language_code, + "Content-Type": "text/plain; charset=utf-8", + } + + new_entries = [] + + for msgctxt, msgstr in translated_entries.items(): + msgid = en_entries.get( + msgctxt, "" + ) # Find the original text using spacey version of msgctxt (Msg ID) + if not msgid: + print( + f"Warning: Could not find original text for Msg ID {msgctxt} ({language_code})" + ) + # See if in General + msgid = general_en_entries.get(msgctxt, "") + if not msgid: + msgid = "Placeholder for missing original text - this means that \ there was a string in the translated lex file which did not appear in the english base file.\ Probably due to it no longer being required." - new_entries.append((msgctxt, msgid)) - else: - print(f"Found {msgctxt} => {msgid} in general") - - entry = polib.POEntry( - msgctxt=msgctxt, - msgid=msgid, - msgstr=msgstr - ) - po.append(entry) + new_entries.append((msgctxt, msgid)) + else: + print(f"Found {msgctxt} => {msgid} in general") - # Update en_entries with new entries - for msgctxt, msgid in new_entries: - en_entries[msgctxt] = msgid + entry = polib.POEntry(msgctxt=msgctxt, msgid=msgid, msgstr=msgstr) + po.append(entry) + + # Update en_entries with new entries + for msgctxt, msgid in new_entries: + en_entries[msgctxt] = msgid + + po.save(po_file) - po.save(po_file) def process_directory_with_en_mapping(source_directory, master_directory): - # First pick up the general ones that may come in any of the files - print("loading General directory") - # Load it up and use it to check for ones without prefix - general_en_file = master_directory /"General/general_en.lex" - general_en_entries = parse_lex_file(general_en_file) - if len(general_en_entries)>0: - print(f"Found {len(general_en_entries)} entries in General lex file") - else: - quit() - for subdir, _, files in os.walk(source_directory): - subdir_path = Path(subdir) - print(subdir_path) + # First pick up the general ones that may come in any of the files - this not true. + print("loading General directory") + # Load it up and use it to check for ones without prefix + general_en_file = master_directory / "General/general_en.lex" + general_en_entries = parse_lex_file(general_en_file) + if len(general_en_entries) > 0: + print(f"Found {len(general_en_entries)} entries in General lex file") + else: + quit() + for subdir, _, files in os.walk(source_directory): + subdir_path = Path(subdir) + print(subdir_path) - # Skip if subdir_path is exactly the source_directory or contains 'pofiles' - if subdir_path == source_directory or 'pofiles' in subdir_path.parts: - continue + # Skip if subdir_path is exactly the source_directory or contains 'pofiles' or "newlex" + if ( + subdir_path == source_directory + or "pofiles" in subdir_path.parts + or "newlex" in subdir_path.parts + ): + continue - # Extract the subservient directory name and ensure it's capitalized - try: - subservient_dir_name = subdir_path.relative_to(source_directory).parts[0].capitalize() - except IndexError: - print(f"Skipping directory {subdir_path} as it has no subservient directory.") - continue + # Extract the subservient directory name and ensure it's capitalized + try: + subservient_dir_name = ( + subdir_path.relative_to(source_directory).parts[0].capitalize() + ) + except IndexError: + print( + f"Skipping directory {subdir_path} as it has no subservient directory." + ) + continue + # Apply it to find the corresponding en directory + corresponding_en_dir = master_directory / subservient_dir_name - # Apply it to find the corresponding en directory - corresponding_en_dir = master_directory / subservient_dir_name + # Tag the General directory as it has no prefix's + IsGeneral = subservient_dir_name == "General" - #Tag the General directory as it has no prefix's - IsGeneral = subservient_dir_name == "General" + # Find corresponding `*`_en.lex` files + en_entries = {} + en_file = corresponding_en_dir / f"{subservient_dir_name.lower()}_en.lex" + if en_file.is_file(): + en_entries = parse_lex_file(en_file) + else: + print(f"Warning: No *_en.lex file found in {corresponding_en_dir}") - # Find corresponding `*`_en.lex` files - en_entries = {} - en_file = corresponding_en_dir / f"{subservient_dir_name.lower()}_en.lex" - if en_file.is_file(): - en_entries = parse_lex_file(en_file) - else: - print(f"Warning: No *_en.lex file found in {corresponding_en_dir}") + pofiles_dir = subdir_path / "pofiles" + if not pofiles_dir.exists(): + pofiles_dir.mkdir(parents=True, exist_ok=True) - pofiles_dir = subdir_path / "pofiles" - if not pofiles_dir.exists(): - pofiles_dir.mkdir(parents=True, exist_ok=True) + for file in files: + if file.endswith(".lex") and not file.endswith("_en.lex"): + lex_file = subdir_path / file + po_file = pofiles_dir / lex_file.with_suffix(".po").name + # po_file = po_file.lower().replace("-", "_") - for file in files: - if file.endswith('.lex') and not file.endswith('_en.lex'): - lex_file = subdir_path / file - po_file = pofiles_dir / lex_file.with_suffix('.po').name - #po_file = po_file.lower().replace("-", "_") + print(f"Converting {lex_file} to {po_file}") + convert_lex_to_po( + lex_file, po_file, en_entries, general_en_entries, IsGeneral + ) - print(f"Converting {lex_file} to {po_file}") - convert_lex_to_po(lex_file, po_file, en_entries,general_en_entries,IsGeneral) + # Save the updated en_entries to the en.lex file in the locale directory + if en_entries: + locale_en_file = subdir_path / f"{subservient_dir_name.lower()}_en.lex" + if en_file.exists(): + shutil.copy( + en_file, locale_en_file + ) # Backup the original en.lex file to the locale path - # Save the updated en_entries to the en.lex file in the locale directory - if en_entries: - locale_en_file = subdir_path / f"{subservient_dir_name.lower()}_en.lex" - if en_file.exists(): - shutil.copy(en_file, locale_en_file) # Backup the original en.lex file to the locale path + save_lex_file(en_entries, locale_en_file) + print(f"Updated and saved {locale_en_file}") - save_lex_file(en_entries, locale_en_file) - print(f"Updated and saved {locale_en_file}") + # Create and save the po file in the pofiles directory + updated_po_file = pofiles_dir / f"{subservient_dir_name.lower()}_en.po" + create_po_from_en_entries(en_entries, updated_po_file) - # Create and save the po file in the pofiles directory - updated_po_file = pofiles_dir / f"{subservient_dir_name.lower()}_en.po" - create_po_from_en_entries(en_entries, updated_po_file) def create_po_from_en_entries(entries, po_file): po = polib.POFile() po.metadata = { - 'Project-Id-Version': '1.0', - 'Language': 'en', - 'Content-Type': 'text/plain; charset=utf-8', + "Project-Id-Version": "1.0", + "Language": "en", + "Content-Type": "text/plain; charset=utf-8", } for msgctxt, msgid in entries.items(): - entry = polib.POEntry( - msgctxt=msgctxt, - msgid=msgid, - msgstr="" - ) + entry = polib.POEntry(msgctxt=msgctxt, msgid=msgid, msgstr="") po.append(entry) po.save(po_file) print(f"Created {po_file}") + def main(): # Convert all .lex files under smeserver-manager-locale into respective pofiles directories using en-mapping print("Processing locale directory...") @@ -226,5 +253,6 @@ def main(): print("Conversion complete.") + if __name__ == "__main__": main() diff --git a/Po2Lex.py b/Po2Lex.py index b63750f..918494f 100644 --- a/Po2Lex.py +++ b/Po2Lex.py @@ -2,39 +2,48 @@ import os from pathlib import Path import polib + # Function to read and process .po file def process_po_file(file_name): try: po = polib.pofile(file_name) result = [] for entry in po: - result.append({"msgctxt": entry.msgctxt, "msgid": entry.msgid, "msgstr": entry.msgstr}) + result.append( + {"msgctxt": entry.msgctxt, "msgid": entry.msgid, "msgstr": entry.msgstr} + ) return result except Exception as e: print(f"Process_po_file Exception {e} in {file_name}") quit() + # Function to create .lex file def create_lex_file(translations, lex_file_name): with open(lex_file_name, "w") as file: for translation in translations: file.write(f"'{translation['msgctxt']}' => '{translation['msgstr']}',\n") + # Main program -SOURCE_BASE_DIR = Path("/home/brianr/Documents/smeserver-manager-locale/root/usr/share/smanager/lib/SrvMngr/I18N/Modules") +SOURCE_BASE_DIR = Path( + "/home/brianr/Documents/smeserver-manager-locale/root/usr/share/smanager/lib/SrvMngr/I18N/Modules" +) # Iterate over subdirectories in SOURCE_BASE_DIR -for subdir in [subdir.path for subdir in os.scandir(SOURCE_BASE_DIR) if subdir.is_dir()]: - module_name = Path(subdir).name - #if module_name == 'Backup': - print(f"Processing {module_name}") - po_dir = Path(os.path.join(subdir, "pofiles")) - lex_dir = Path(os.path.join(subdir, "newlex")) - # Ensure the newlex directory exists - lex_dir.mkdir(parents=True, exist_ok=True) - for file in os.listdir(po_dir): - if file.endswith(".po"): - po_file_path = Path(os.path.join(po_dir, file)) - translations = process_po_file(po_file_path) - lex_file_name = lex_dir / (po_file_path.stem + ".lex") - create_lex_file(translations, lex_file_name) +for subdir in [ + subdir.path for subdir in os.scandir(SOURCE_BASE_DIR) if subdir.is_dir() +]: + module_name = Path(subdir).name + # if module_name == 'Backup': + print(f"Processing {module_name}") + po_dir = Path(os.path.join(subdir, "pofiles")) + lex_dir = Path(os.path.join(subdir, "newlex")) + # Ensure the newlex directory exists + lex_dir.mkdir(parents=True, exist_ok=True) + for file in os.listdir(po_dir): + if file.endswith(".po"): + po_file_path = Path(os.path.join(po_dir, file)) + translations = process_po_file(po_file_path) + lex_file_name = lex_dir / (po_file_path.stem + ".lex") + create_lex_file(translations, lex_file_name) diff --git a/create_lex_file.py b/create_lex_file.py new file mode 100644 index 0000000..3c35d74 --- /dev/null +++ b/create_lex_file.py @@ -0,0 +1,41 @@ +import xml.etree.ElementTree as ET +import os +import sys + + +def create_lex_file(lang_code): + # Construct the file names based on the language code + xml_file_path = ( + f"/home/brianr/SME11/etc/e-smith/locale/{lang_code}/FormMagick/general" + ) + # lex_file_path = f'/usr/share/smanager/lib/SrcMngr/I18N/Modules/General/general_{lang_code}.lex' + lex_file_path = f"general_{lang_code}.lex" + + # Check if the XML file exists + if not os.path.exists(xml_file_path): + print(f"Error: The file {xml_file_path} does not exist.") + return + + # Parse the XML file + tree = ET.parse(xml_file_path) + root = tree.getroot() + + # Open the .lex file for writing + with open(lex_file_path, "w", encoding="utf-8") as lex_file: + # Iterate over each entry in the lexicon + for entry in root.findall("entry"): + base = entry.find("base").text + trans = entry.find("trans").text + # Write to the .lex file in the specified format + lex_file.write(f"'{base}' => '{trans}',\n") + + print(f"The .lex file has been created at {lex_file_path}") + + +if __name__ == "__main__": + if len(sys.argv) != 2: + print("Usage: python create_lex_file.py ") + sys.exit(1) + + language_code = sys.argv[1] + create_lex_file(language_code) diff --git a/general_tr.lex b/general_tr.lex new file mode 100644 index 0000000..23f7bff --- /dev/null +++ b/general_tr.lex @@ -0,0 +1,129 @@ +'Collaboration' => 'Uyum (İşbirliği)', +'Administration' => 'Yönetim', +'Security' => 'Güvenlik', +'Configuration' => 'Konfigürasyon', +'Miscellaneous' => 'Çeşitli', +'Your Settings' => 'Ayarlarınız', +'SAVE' => 'Kaydet', +'CANCEL' => 'İptal', +'ENABLED' => 'Etkin', +'DISABLED' => 'Etkin değil', +'NO' => 'Hayır', +'YES' => 'Evet', +'ADD' => 'Ekle', +'CREATE' => 'Oluştur', +'MODIFY' => 'Değiştir', +'REMOVE' => 'Kaldır', +'COMMENT' => 'Açıklama', +'NEXT' => 'İleri', +'SELF' => 'Kendi', +'REMOTE' => 'Uzaktan', +'LOCAL' => 'Yerel', +'ACTION' => 'Eylem', +'NETWORK' => 'Ağ', +'ROUTER' => 'Yönlendirici', +'OPERATION_STATUS_REPORT' => 'İşlem durum raporu', +'ACCOUNT' => 'Hesap', +'GROUP' => 'Grup', +'DESC_SECTIONBAR' => '
', +'NO_PIPES_ALLOWED' => 'Boru sembolü ( | ) bu alanda kullanılamaz', +'ERROR_BELOW' => 'HATA: Bu sayfanın doğrulanmasında bir hata oluştu. Lütfen önce sayfanın aşağısına bakıp sorunu belirleyin.', +'ACCESS' => 'Giriş', +'ACCOUNT_LOCKED' => 'Hesap kilitli', +'GROUP_ADD' => 'Grup ekle', +'NETWORKS_ALLOW_LOCAL' => 'Sadece yerel ağadan erişime izin ver', +'NETWORKS_ALLOW_PUBLIC' => 'Her yerden erişime izin ver (bütün internet)', +'ERROR_PASSWORD_CHANGE' => 'Şifrenizi değiştirmeye çalışırken bir hata oluştu. Lütfen eski şifrenizi doğru girdiğinizden emin olun.', +'BACK' => 'Geri', +'BACKUP' => 'Yedekleme', +'DESCRIPTION_BRIEF' => 'Kısa açıklama', +'PASSWORD_CHANGE' => 'Parolayı Değiştir', +'RESET_PASSWORD_TITLE' => 'Kullanıcı şifresini sıfırla', +'ACCOUNT_PASSWORD_CHANGE' => 'Hesap şifresini değiştir', +'CONTENT' => 'İçerik', +'CREATE_GROUP' => 'Kullanıcı gurubu oluştur', +'USER_LIST_CURRENT' => 'Mevcut kullanıcıların listesi', +'DESCRIPTION' => 'Açıklama', +'DESTINATION' => 'Hedef', +'DOMAIN_NAME' => 'Alan adı', +'DOMAIN' => 'Etki alanı', +'DOMAINS' => 'Etki alanları', +'DOWNLOAD' => 'İndirme', +'ERROR_UPDATING_CONFIGURATION' => 'Sistem ayarları güncellenirken hata oluştu.', +'GROUP_MEMBERS' => 'Grup Üyeleri', +'GROUP_NAME' => 'Grup Adı', +'GROUPS' => 'Gruplar', +'IP_ADDRESS' => 'IP Adresi', +'IP_ADDRESS_OR_FQDN' => 'IP Adresi veya FQDN', +'USER_INVALID' => 'Geçersiz kullanıcı', +'LOCATION' => 'Konum', +'MB' => 'Mb', +'MODIFY_USER_GROUP' => 'Kullanıcı gurubunu değiştir', +'NAME' => 'İsim', +'PASSWORD_VERIFY_NEW' => 'Yeni şifre (doğrulayın):', +'PASSWORD_NEW' => 'Yeni şifre:', +'OFF' => 'Kapat', +'OK' => 'Tamam', +'PASSWORD_OLD' => 'Eski şifre', +'ON' => 'Aç', +'PASSWORD' => 'Şifre', +'PERFORM' => 'Uygula', +'RECONFIGURE' => 'Yeniden yapılandır', +'REMOVE_USER_GROUP' => 'Kullanıcı gurubunu sil', +'PASSWORD_RESET' => 'Şifreyi sıfırla', +'RESTORE' => 'Eski haline getir', +'SHUTDOWN' => 'Kapat', +'SUCCESS' => 'Başarılı', +'ACCOUNT_NAME_INVALID' => 'Girilen hesap adı geçersiz!', +'ACCOUNT_NAME_INVALID_CHARS' => 'Girilen hesap adı geçersiz karakterler içeriyor.', +'PASSWORD_OLD_INVALID_CHARS' => 'Girilen eski şifre geçersiz karakterler içeriyor.', +'PASSWORD_INVALID_CHARS' => 'Girilen şifre geçersiz karakterler içeriyor.', +'PASSWORD_VERIFY_ERROR' => 'Girilen şifreler uyşmadı.', +'ACCOUNT_USER_NONE' => 'Kullanıcı hesabı bulunamadı.', +'ACCOUNT_GROUP_NONE' => 'Kullanıcı grubu bulunamadı.', +'ERROR_INVALID_CHARS' => 'Açıklamada geçersiz karakterler bulundu.', +'USER_NAME' => 'Kullanıcı Adı', +'YOUR_ACCOUNT' => 'Hesabınız:', +'YOUR_ACCOUNT_INVALID' => 'Girilen hesap adı geçersiz!', +'PASSWORD_CHANGE_SUCCESS' => 'Şifreniz başarıyla değiştirildi.', +'FM_NONBLANK' => 'Bu alan boş bırakılmamalı', +'FM_INTEGER' => 'Bu alanın pozitif tamsayı içermelidir', +'FM_NUMBER' => 'Bu alan bir sayı içermelidir', +'FM_WORD' => 'Bu alanda bir tek kelime yer almalıdır.', +'FM_DATE' => 'Girilen değer tarih olarak algılanmadı', +'FM_CREDIT_CARD_NUMBER1' => 'Kredi kartı numarası girmelisiniz', +'FM_CREDIT_CARD_NUMBER2' => 'Kredi kartı numaraları sadece rakamlardan oluşmalıdır. Boşluk yada tire olmamalıdır.', +'FM_CREDIT_CARD_NUMBER3' => 'Uzunluk en az 14 karakter olmalı', +'FM_CREDIT_CARD_NUMBER4' => 'Geçersiz kredi kartı numarası', +'FM_CREDIT_CARD_EXPIRY1' => 'Son kullanma tarihi girilmedi.', +'FM_CREDIT_CARD_EXPIRY2' => 'Son kullanma tarihi AA/YY yada AA/YYYY şeklinde olmalıdır', +'FM_CREDIT_CARD_EXPIRY3' => 'Son kullanma tarihi geçmiş', +'FM_CREDIT_CARD_EXPIRY4' => 'Son kullana tarihi çok uzak', +'FM_ISO_COUNTRY_CODE1' => 'Ülke kodunu girmelisiniz', +'FM_ISO_COUNTRY_CODE2' => 'Ülke kodunu ISO standartlarında girmelisiniz', +'FM_US_STATE' => 'Bu geçerli 2 harfli ABD eyalet kısaltması olarak görünmüyor', +'FM_US_ZIPCODE' => 'ABD posta kodları 5 yada 9 rakamlı olmalıdır', +'FM_MINLENGTH1' => 'Minimum uzunluk anlamalı belirtilmedi {$minlength}', +'FM_MINLENGTH2' => 'En az {$minlength} karakter içermelidir', +'FM_MAXLENGTH1' => 'Mksimum uzunluk anlamalı belirtilmedi {$maxlength}', +'FM_MAXLENGTH2' => 'En fazla {$maxlength} karakter içermelidir', +'FM_EXACTLENGTH1' => 'Bu alanın uzunluğu belirtmelisiniz.', +'FM_EXACTLENGTH2' => 'Bu alanın tam uzunluğunu sayıyla belirtmelisiniz', +'FM_EXACTLENGTH3' => 'Bu alan {$exactlength} karakterden oluşmalıdır', +'FM_LENGTHRANGE1' => 'Alanaın maksimum ve minimum değerlerlini belirtmelisiniz.', +'FM_LENGTHRANGE2' => 'Alanaın maksimum ve minimum değerlerlini sayıyla belirtmelisiniz.', +'FM_LENGTHRANGE3' => 'Bu alan en az {$minlength} en fazla {$maxlength} karakterden oluşmalıdır', +'FM_URL' => 'Bu alan http:// veya tp:// ile başlayan bir URL içermelidir', +'FM_EMAIL_SIMPLE1' => 'E-posta adresi girmelisiniz.', +'FM_EMAIL_SIMPLE2' => 'RFC822 uyumlu bir e-posta adresi olarak görünmüyor', +'FM_DOMAIN_NAME' => 'Bu alan, geçerli bir Internet web adresi gibi görünmüyor.', +'FM_IP_NUMBER1' => 'Bu alan geçerli bir IP adresi içermelidir boş bırakılamaz.', +'FM_IP_NUMBER2' => 'Standart DHCP için geçersiz adres', +'FM_IP_NUMBER3' => '{$octet} 255 ten büyüktür', +'FM_USERNAME' => 'Bu alan, geçerli bir kullanıcı adı gibi görünmelidir (3-8 harf ve rakam)', +'FM_PASSWORD1' => 'Şifre belirtmelisiniz.', +'FM_PASSWORD2' => 'Belirttiğiniz şifre güvenli değil. İyi bir şifre bunları içermelidir: büyük harf, küçük harf, sayı, alfasayısal olmayan karakterler ve en az 7 karakter uzunluğunda olmalıdır.', +'FM_MAC_ADDRESS1' => 'MAC adresi belirtmelisiniz.', +'FM_MAC_ADDRESS2' => 'Tanımladığınız MAC adresi geçerli değildir.', +'FM_ERR_UNEXPECTED_DESC' => 'Hata: açıklama geçersiz karakter içeriyor', +'CSRF_VALIDATION_FAILURE' => 'Error: CSRF token is invalid or outdated.', diff --git a/missing_translations_Backup.json b/missing_translations_Backup.json new file mode 100644 index 0000000..7884757 --- /dev/null +++ b/missing_translations_Backup.json @@ -0,0 +1,463 @@ +{ + "bg": [ + "bac_ERR_ALREADY_MOUNTED", + "bac_ERR_NOT_MOUNTED", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "pt": [ + "bac_ERR_ALREADY_MOUNTED", + "bac_ERR_NO_FULL_BACKUP", + "bac_ERR_NO_INC_BACKUP", + "bac_TESTING_NEEDED_BACKUPS_FOR_RESTORE", + "bac_TESTED_BACKUP", + "bac_CHECK_INTEGRITY_WARNING", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "id": [ + "bac_UPDATE_CONF", + "bac_SERVER_REBOOT", + "bac_ENABLE_WORKSTN_BACKUP", + "bac_WORKSTN_LOGIN", + "bac_ERR_ALREADY_MOUNTED", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "tw": [], + "ro": [ + "bac_BACKUP_CONFIG_STATUS", + "bac_RESTORE_CONF_FROM_WORKSTN", + "bac_RESTORE_FROM_WORKSTN", + "bac_RESTORING_FROM_WORKSTN", + "bac_ERR_RESTORING_FROM_WORKSTN", + "bac_WORKSTN_NAME", + "bac_ERR_INVALID_FOLDER", + "bac_ERR_INVALID_LOGIN", + "bac_ERR_INVALID_PASSWORD", + "bac_ERR_ALREADY_MOUNTED", + "bac_ERR_MOUNTING_SMBSHARE", + "bac_ERR_NOT_MOUNTED", + "bac_WORKSTN_NOT_SET", + "bac_NO_BACKUPS_TO_RESTORE", + "bac_NUMBER_OF_SETS", + "bac_NUMBER_OF_FILES_IN_SET", + "bac_ERR_INVALID_SETS_NUMBER", + "bac_ERR_INVALID_FILES_IN_SET_NUMBER", + "bac_WORKSTN_TIMEOUT", + "bac_INC_ONLY_TIMEOUT", + "bac_ERR_INVALID_TIMEOUT", + "bac_ERR_NO_HOST_DIR", + "bac_ERROR_READING_FILE", + "bac_WORKSTN_SEL_RESTORE", + "bac_WORKSTN_SELECTIVE_RESTORE", + "bac_ALL_BACKUPS", + "bac_BACKUP_CHOICE", + "bac_SELECT_DATE_BEFORE", + "bac_FILTER_EXPRESSION", + "bac_SELECT_FILES_TO_RESTORE", + "bac_ERR_WHILE_UNMOUNTING", + "bac_ERR_DAR_CATALOG", + "bac_FULL_ONLY_ON", + "bac_ERR_INVALID_COMPRESSION", + "bac_DOW", + "bac_CONFIGURATION_TO_BE_DONE", + "bac_WORKSTN_BACKUP_USB", + "bac_WORKSTN_BACKUP_MNT", + "bac_WORKSTN_BACKUP_INCONLY_TIMEOUT", + "bac_WORKSTN_FULL_BACKUP_EVERYDAY", + "bac_WORKSTN_FULL_BACKUP_DAY", + "bac_WORKSTATION_BACKUP_SETCONF", + "bac_SELECT_VFS_TYPE", + "bac_ERR_NO_USB_DISK", + "bac_ERR_NO_MOUNTED_DISK", + "bac_HOURS", + "bac_ERR_NO_FULL_BACKUP", + "bac_ERR_NO_INC_BACKUP", + "bac_TESTING_NEEDED_BACKUPS_FOR_RESTORE", + "bac_TESTED_BACKUP", + "bac_RESTORE_VERIFY_FAILED", + "bac_CHECK_INTEGRITY_WARNING", + "bac_local removable disk", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "he": [ + "bac_BACKUP_CONFIG_STATUS", + "bac_RESTORE_FROM_WORKSTN", + "bac_RESTORING_FROM_WORKSTN", + "bac_ERR_RESTORING_FROM_WORKSTN", + "bac_WORKSTN_NAME", + "bac_WORKSTN_BACKUP_SETTINGS", + "bac_SHARED_FOLDER_NAME", + "bac_WORKSTN_LOGIN", + "bac_WORKSTATION_BACKUP_DEST", + "bac_ERR_INVALID_FOLDER", + "bac_ERR_INVALID_LOGIN", + "bac_ERR_INVALID_PASSWORD", + "bac_ERR_ALREADY_MOUNTED", + "bac_ERR_MOUNTING_SMBSHARE", + "bac_ERR_NOT_MOUNTED", + "bac_WORKSTN_NOT_SET", + "bac_NO_BACKUPS_TO_RESTORE", + "bac_NUMBER_OF_SETS", + "bac_NUMBER_OF_FILES_IN_SET", + "bac_ERR_INVALID_SETS_NUMBER", + "bac_ERR_INVALID_FILES_IN_SET_NUMBER", + "bac_WORKSTN_TIMEOUT", + "bac_INC_ONLY_TIMEOUT", + "bac_ERR_INVALID_TIMEOUT", + "bac_ERR_NO_HOST_DIR", + "bac_ERROR_READING_FILE", + "bac_WORKSTN_SEL_RESTORE", + "bac_WORKSTN_SELECTIVE_RESTORE", + "bac_ALL_BACKUPS", + "bac_BACKUP_CHOICE", + "bac_SELECT_DATE_BEFORE", + "bac_FILTER_EXPRESSION", + "bac_SELECT_FILES_TO_RESTORE", + "bac_ERR_WHILE_UNMOUNTING", + "bac_ERR_DAR_CATALOG", + "bac_FULL_ONLY_ON", + "bac_ERR_INVALID_COMPRESSION", + "bac_DOW", + "bac_CONFIGURATION_TO_BE_DONE", + "bac_WORKSTN_BACKUP_USB", + "bac_WORKSTN_BACKUP_MNT", + "bac_WORKSTN_BACKUP_INCONLY_TIMEOUT", + "bac_WORKSTN_FULL_BACKUP_EVERYDAY", + "bac_WORKSTN_FULL_BACKUP_DAY", + "bac_WORKSTATION_BACKUP_SETCONF", + "bac_SELECT_VFS_TYPE", + "bac_ERR_NO_USB_DISK", + "bac_ERR_NO_MOUNTED_DISK", + "bac_HOURS", + "bac_ERR_NO_FULL_BACKUP", + "bac_ERR_NO_INC_BACKUP", + "bac_TESTING_NEEDED_BACKUPS_FOR_RESTORE", + "bac_TESTED_BACKUP", + "bac_RESTORE_VERIFY_FAILED", + "bac_CHECK_INTEGRITY_WARNING", + "bac_local removable disk", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "fr": [], + "tr": [ + "bac_ERR_ALREADY_MOUNTED", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "nl": [ + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "br": [], + "ja": [ + "bac_MUST_REBOOT_AFTER_RESTORE", + "bac_FILE_TO_RESTORE", + "bac_RESTORE_CANNOT_PROCEED", + "bac_ANOTHER_RESTORE_IN_PROGRESS", + "bac_RESTORE_IN_PROGRESS", + "bac_RESTORE_FAILED_MSG", + "bac_RESTORE_COMPLETE", + "bac_ERR_RESTORING_GID", + "bac_ERR_RESTORING_INITIAL_GRP", + "bac_RESTORE_FAILED", + "bac_ERR_ALREADY_MOUNTED", + "bac_ERR_NOT_MOUNTED", + "bac_WORKSTN_BACKUP_USB", + "bac_WORKSTN_BACKUP_MNT", + "bac_WORKSTN_BACKUP_INCONLY_TIMEOUT", + "bac_WORKSTN_FULL_BACKUP_EVERYDAY", + "bac_WORKSTN_FULL_BACKUP_DAY", + "bac_WORKSTATION_BACKUP_SETCONF", + "bac_SELECT_VFS_TYPE", + "bac_ERR_NO_USB_DISK", + "bac_ERR_NO_MOUNTED_DISK", + "bac_HOURS", + "bac_ERR_NO_FULL_BACKUP", + "bac_ERR_NO_INC_BACKUP", + "bac_TESTING_NEEDED_BACKUPS_FOR_RESTORE", + "bac_TESTED_BACKUP", + "bac_RESTORE_VERIFY_FAILED", + "bac_CHECK_INTEGRITY_WARNING", + "bac_local removable disk", + "bac_Mounted disk", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "es": [ + "bac_ERR_ALREADY_MOUNTED", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "et": [ + "bac_FILE_TO_RESTORE", + "bac_RESTORE_CANNOT_PROCEED", + "bac_LOAD_TAPE_REMINDER_TIME", + "bac_ERR_CONF_BACKUP", + "bac_UNABLE_TO_RESTORE_CONF", + "bac_CONFIGURE_WORKSTN_BACKUP", + "bac_ENABLE_WORKSTN_BACKUP", + "bac_WORKSTN_BACKUP_TIME", + "bac_UPDATING_WORKSTN_CONF", + "bac_SUCCESSFULLY_ENABLED_WORKSTN", + "bac_SUCCESSFULLY_DISABLED_WORKSTN", + "bac_RESTORE_CONF_FROM_WORKSTN", + "bac_RESTORE_FROM_WORKSTN", + "bac_RESTORING_FROM_WORKSTN", + "bac_ERR_RESTORING_FROM_WORKSTN", + "bac_SHARED_FOLDER_NAME", + "bac_WORKSTATION_BACKUP_DEST", + "bac_ERR_INVALID_FOLDER", + "bac_ERR_INVALID_LOGIN", + "bac_ERR_INVALID_PASSWORD", + "bac_ERR_ALREADY_MOUNTED", + "bac_ERR_MOUNTING_SMBSHARE", + "bac_WORKSTN_NOT_SET", + "bac_NO_BACKUPS_TO_RESTORE", + "bac_NUMBER_OF_SETS", + "bac_NUMBER_OF_FILES_IN_SET", + "bac_ERR_INVALID_SETS_NUMBER", + "bac_ERR_INVALID_FILES_IN_SET_NUMBER", + "bac_WORKSTN_TIMEOUT", + "bac_INC_ONLY_TIMEOUT", + "bac_ERR_INVALID_TIMEOUT", + "bac_ERR_NO_HOST_DIR", + "bac_ERROR_READING_FILE", + "bac_WORKSTN_SELECTIVE_RESTORE", + "bac_ALL_BACKUPS", + "bac_BACKUP_CHOICE", + "bac_SELECT_DATE_BEFORE", + "bac_FILTER_EXPRESSION", + "bac_ERR_WHILE_UNMOUNTING", + "bac_ERR_DAR_CATALOG", + "bac_FULL_ONLY_ON", + "bac_ERR_INVALID_COMPRESSION", + "bac_DOW", + "bac_CONFIGURATION_TO_BE_DONE", + "bac_WORKSTN_BACKUP_USB", + "bac_WORKSTN_BACKUP_INCONLY_TIMEOUT", + "bac_WORKSTN_FULL_BACKUP_EVERYDAY", + "bac_WORKSTN_FULL_BACKUP_DAY", + "bac_WORKSTATION_BACKUP_SETCONF", + "bac_SELECT_VFS_TYPE", + "bac_ERR_NO_USB_DISK", + "bac_ERR_NO_MOUNTED_DISK", + "bac_HOURS", + "bac_ERR_NO_FULL_BACKUP", + "bac_ERR_NO_INC_BACKUP", + "bac_TESTING_NEEDED_BACKUPS_FOR_RESTORE", + "bac_TESTED_BACKUP", + "bac_RESTORE_VERIFY_FAILED", + "bac_CHECK_INTEGRITY_WARNING", + "bac_local removable disk", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "it": [], + "pl": [ + "bac_BACKUP_TITLE", + "bac_BACKUP_CONFIG_STATUS", + "bac_ERR_CONF_BACKUP", + "bac_SUCCESSFULLY_ENABLED_TAPE", + "bac_SUCCESSFULLY_DISABLED", + "bac_RESTORE_CONF_FROM_TAPE", + "bac_RESTORE_FROM_TAPE", + "bac_UNABLE_TO_RESTORE_CONF", + "bac_RESTORING_FROM_TAPE", + "bac_ERR_RESTORING_FROM_TAPE", + "bac_SERVER_REBOOT", + "bac_SERVER_WILL_REBOOT", + "bac_WORKSTN_CONFIGURE", + "bac_WORKSTN_VERIFY", + "bac_WORKSTN_RESTORE", + "bac_CONFIGURE_WORKSTN_BACKUP", + "bac_ENABLE_DISABLE_WORKSTN", + "bac_ENABLE_WORKSTN_BACKUP", + "bac_WORKSTN_BACKUP_TIME", + "bac_UPDATING_WORKSTN_CONF", + "bac_SUCCESSFULLY_ENABLED_WORKSTN", + "bac_SUCCESSFULLY_DISABLED_WORKSTN", + "bac_VERIFY_WORKSTN_BACKUP_FILE", + "bac_RESTORE_CONF_FROM_WORKSTN", + "bac_RESTORE_FROM_WORKSTN", + "bac_RESTORING_FROM_WORKSTN", + "bac_ERR_RESTORING_FROM_WORKSTN", + "bac_WORKSTN_NAME", + "bac_WORKSTN_BACKUP_SETTINGS", + "bac_SHARED_FOLDER_NAME", + "bac_WORKSTN_LOGIN", + "bac_WORKSTATION_BACKUP_DEST", + "bac_ERR_INVALID_FOLDER", + "bac_ERR_INVALID_LOGIN", + "bac_ERR_INVALID_PASSWORD", + "bac_ERR_ALREADY_MOUNTED", + "bac_ERR_MOUNTING_SMBSHARE", + "bac_ERR_NOT_MOUNTED", + "bac_WORKSTN_NOT_SET", + "bac_NO_BACKUPS_TO_RESTORE", + "bac_NUMBER_OF_SETS", + "bac_NUMBER_OF_FILES_IN_SET", + "bac_ERR_INVALID_SETS_NUMBER", + "bac_ERR_INVALID_FILES_IN_SET_NUMBER", + "bac_WORKSTN_TIMEOUT", + "bac_INC_ONLY_TIMEOUT", + "bac_ERR_INVALID_TIMEOUT", + "bac_ERR_NO_HOST_DIR", + "bac_ERROR_READING_FILE", + "bac_WORKSTN_SEL_RESTORE", + "bac_WORKSTN_SELECTIVE_RESTORE", + "bac_ALL_BACKUPS", + "bac_BACKUP_CHOICE", + "bac_SELECT_DATE_BEFORE", + "bac_FILTER_EXPRESSION", + "bac_SELECT_FILES_TO_RESTORE", + "bac_ERR_WHILE_UNMOUNTING", + "bac_ERR_DAR_CATALOG", + "bac_FULL_ONLY_ON", + "bac_ERR_INVALID_COMPRESSION", + "bac_DOW", + "bac_CONFIGURATION_TO_BE_DONE", + "bac_WORKSTN_BACKUP_USB", + "bac_WORKSTN_BACKUP_MNT", + "bac_WORKSTN_BACKUP_INCONLY_TIMEOUT", + "bac_WORKSTN_FULL_BACKUP_EVERYDAY", + "bac_WORKSTN_FULL_BACKUP_DAY", + "bac_WORKSTATION_BACKUP_SETCONF", + "bac_SELECT_VFS_TYPE", + "bac_ERR_NO_USB_DISK", + "bac_ERR_NO_MOUNTED_DISK", + "bac_HOURS", + "bac_ERR_NO_FULL_BACKUP", + "bac_ERR_NO_INC_BACKUP", + "bac_TESTING_NEEDED_BACKUPS_FOR_RESTORE", + "bac_TESTED_BACKUP", + "bac_RESTORE_VERIFY_FAILED", + "bac_CHECK_INTEGRITY_WARNING", + "bac_local removable disk", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "da": [], + "sv": [ + "bac_ERR_ALREADY_MOUNTED", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "nb": [ + "bac_ERR_ALREADY_MOUNTED", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "de": [ + "bac_local removable disk", + "bac_Mounted disk" + ], + "th": [ + "bac_ERR_ALREADY_MOUNTED", + "bac_ERR_NOT_MOUNTED", + "bac_Mounted disk", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "el": [ + "bac_ERR_ALREADY_MOUNTED", + "bac_ERR_NOT_MOUNTED", + "bac_ERR_NO_FULL_BACKUP", + "bac_ERR_NO_INC_BACKUP", + "bac_TESTING_NEEDED_BACKUPS_FOR_RESTORE", + "bac_TESTED_BACKUP", + "bac_CHECK_INTEGRITY_WARNING", + "bac_Mounted disk", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "sl": [ + "bac_WORKSTN_CONFIGURE", + "bac_WORKSTN_VERIFY", + "bac_WORKSTN_RESTORE", + "bac_CONFIGURE_WORKSTN_BACKUP", + "bac_ENABLE_DISABLE_WORKSTN", + "bac_ENABLE_WORKSTN_BACKUP", + "bac_VERIFY_WORKSTN_BACKUP_FILE", + "bac_RESTORE_FROM_WORKSTN", + "bac_RESTORING_FROM_WORKSTN", + "bac_WORKSTN_NAME", + "bac_WORKSTN_BACKUP_SETTINGS", + "bac_SHARED_FOLDER_NAME", + "bac_WORKSTN_LOGIN", + "bac_WORKSTATION_BACKUP_DEST", + "bac_ERR_INVALID_FOLDER", + "bac_ERR_INVALID_LOGIN", + "bac_ERR_INVALID_PASSWORD", + "bac_ERR_ALREADY_MOUNTED", + "bac_ERR_MOUNTING_SMBSHARE", + "bac_ERR_NOT_MOUNTED", + "bac_WORKSTN_NOT_SET", + "bac_NO_BACKUPS_TO_RESTORE", + "bac_NUMBER_OF_SETS", + "bac_NUMBER_OF_FILES_IN_SET", + "bac_ERR_INVALID_SETS_NUMBER", + "bac_ERR_INVALID_FILES_IN_SET_NUMBER", + "bac_WORKSTN_TIMEOUT", + "bac_INC_ONLY_TIMEOUT", + "bac_ERR_INVALID_TIMEOUT", + "bac_ERR_NO_HOST_DIR", + "bac_ERROR_READING_FILE", + "bac_WORKSTN_SEL_RESTORE", + "bac_WORKSTN_SELECTIVE_RESTORE", + "bac_ALL_BACKUPS", + "bac_BACKUP_CHOICE", + "bac_SELECT_DATE_BEFORE", + "bac_FILTER_EXPRESSION", + "bac_SELECT_FILES_TO_RESTORE", + "bac_ERR_WHILE_UNMOUNTING", + "bac_ERR_DAR_CATALOG", + "bac_FULL_ONLY_ON", + "bac_ERR_INVALID_COMPRESSION", + "bac_DOW", + "bac_WORKSTN_BACKUP_USB", + "bac_WORKSTN_BACKUP_MNT", + "bac_WORKSTN_BACKUP_INCONLY_TIMEOUT", + "bac_WORKSTN_FULL_BACKUP_EVERYDAY", + "bac_WORKSTN_FULL_BACKUP_DAY", + "bac_WORKSTATION_BACKUP_SETCONF", + "bac_SELECT_VFS_TYPE", + "bac_ERR_NO_USB_DISK", + "bac_ERR_NO_MOUNTED_DISK", + "bac_ERR_NO_FULL_BACKUP", + "bac_ERR_NO_INC_BACKUP", + "bac_TESTING_NEEDED_BACKUPS_FOR_RESTORE", + "bac_TESTED_BACKUP", + "bac_CHECK_INTEGRITY_WARNING", + "bac_local removable disk", + "bac_Mounted disk", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ], + "cn": [], + "hu": [], + "ru": [ + "bac_DESKTOP_BACKUP", + "bac_DESKTOP_RESTORE", + "bac_DESKTOP_VERIFY", + "bac_X_BACKUP_OR_RESTORE", + "bac_ERR_POST_BACKUP", + "bac_ERR_RESTORING_GID", + "bac_FILES_IN_BACKUP", + "bac_TAPE_BACKUP_TIME", + "bac_LOAD_TAPE_REMINDER_TIME", + "bac_ERR_CONF_BACKUP", + "bac_SUCCESSFULLY_ENABLED_TAPE", + "bac_SUCCESSFULLY_DISABLED", + "bac_BACKUP_DESKTOP_TOO_BIG", + "bac_WORKSTN_RESTORE", + "bac_WORKSTN_BACKUP_TIME", + "bac_ERR_ALREADY_MOUNTED", + "bac_NO_BACKUPS_TO_RESTORE", + "bac_NUMBER_OF_SETS", + "bac_NUMBER_OF_FILES_IN_SET", + "bac_ERR_INVALID_SETS_NUMBER", + "bac_ERR_INVALID_FILES_IN_SET_NUMBER", + "bac_WORKSTN_TIMEOUT", + "bac_INC_ONLY_TIMEOUT", + "bac_ERR_NO_HOST_DIR", + "bac_SELECT_DATE_BEFORE", + "bac_ERR_DAR_CATALOG", + "bac_WORKSTN_BACKUP_USB", + "bac_WORKSTN_BACKUP_INCONLY_TIMEOUT", + "bac_WORKSTN_FULL_BACKUP_EVERYDAY", + "bac_WORKSTN_FULL_BACKUP_DAY", + "bac_ERR_NO_USB_DISK", + "bac_ERR_NO_MOUNTED_DISK", + "bac_ERR_NO_INC_BACKUP", + "bac_local removable disk", + "bac_ERROR_WHEN_TESTING_REMOTE_SERVER" + ] +} \ No newline at end of file diff --git a/missing_translations_Bugreport.json b/missing_translations_Bugreport.json new file mode 100644 index 0000000..4dccd2e --- /dev/null +++ b/missing_translations_Bugreport.json @@ -0,0 +1,449 @@ +{ + "ru": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "el": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "cn": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_SME_VERSION", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "bg": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "et": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "he": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "sl": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "tr": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "fr": [], + "ja": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report", + "Report a bug" + ], + "nb": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "it": [ + "bugr_DO_NOT_PANIC", + "bugr_SERVER_MODE", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report", + "Report a bug" + ], + "pt": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report", + "Report a bug" + ], + "da": [ + "bugr_SME_VERSION", + "bugr_SERVER_MODE" + ], + "ro": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "br": [], + "hu": [], + "id": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "pl": [], + "de": [], + "nl": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report", + "Report a bug" + ], + "sv": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "tw": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "th": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report" + ], + "es": [ + "bugr_FORM_TITLE", + "bugr_DO_NOT_PANIC", + "bugr_SME_EXPERIENCE", + "bugr_PLEASE_REPORT_HERE", + "bugr_USE_TEMPLATE", + "bugr_FOLLOWING_REPORT_MIGHT_HELP", + "bugr_REPORT_CONTENT", + "bugr_SME_VERSION", + "bugr_SERVER_MODE", + "bugr_KERNEL_AND_ARCH", + "bugr_INSTALLED_RPMS", + "bugr_ALTERED_TEMPLATES", + "bugr_ALTERED_EVENTS", + "bugr_YUM_REPOS", + "bugr_PRIVACY", + "bugr_CREATE_REPORT", + "bugr_DONATING", + "bugr_AWARE_SME", + "bugr_YOUR_HELP", + "bugr_CONSIDER_DONATING", + "bugr_THANK_YOU", + "bugr_Download this report", + "Report a bug" + ] +} \ No newline at end of file diff --git a/missing_translations_Clamav.json b/missing_translations_Clamav.json new file mode 100644 index 0000000..4366902 --- /dev/null +++ b/missing_translations_Clamav.json @@ -0,0 +1,27 @@ +{ + "th": [], + "de": [], + "et": [], + "el": [], + "he": [], + "id": [], + "es": [], + "pt": [], + "pl": [], + "sl": [], + "bg": [], + "ro": [], + "da": [], + "ja": [], + "ru": [], + "nl": [], + "sv": [], + "cn": [], + "hu": [], + "nb": [], + "tr": [], + "br": [], + "fr": [], + "it": [], + "tw": [] +} \ No newline at end of file diff --git a/missing_translations_Datetime.json b/missing_translations_Datetime.json new file mode 100644 index 0000000..11d1d1b --- /dev/null +++ b/missing_translations_Datetime.json @@ -0,0 +1,144 @@ +{ + "el": [], + "th": [ + "dat_NETWORK_TIME_SERVER" + ], + "ro": [ + "dat_FORM_TITLE", + "dat_SET_DATE_TITLE", + "dat_JANUARY", + "dat_FEBRUARY", + "dat_MARCH", + "dat_APRIL", + "dat_MAY", + "dat_JUNE", + "dat_JULY", + "dat_AUGUST", + "dat_SEPTEMBER", + "dat_OCTOBER", + "dat_NOVEMBER", + "dat_DECEMBER", + "dat_NEW_M/D/Y", + "dat_NEW_H/M/S", + "dat_AM/PM_AND_TZ", + "dat_NTP_ENABLE_DESC", + "dat_NTP_CONFIGURE_DESC", + "dat_NTP_SERVER", + "dat_VERIFY_DATE_AND_TIME", + "dat_NEW_DATE_AND_TIME", + "dat_SETTING_DATE_AND_TIME", + "dat_BETWEEN_1_AND_31", + "dat_FOUR_DIGIT_YEAR", + "dat_BETWEEN_1_AND_12", + "dat_INVALID_SECOND", + "dat_ERR_SETTING_CLOCK", + "dat_SERVER_DISABLED", + "dat_ERR_CHANGING_TS", + "dat_SETTINGS_CHANGED", + "dat_NETWORK_TIME_SERVER", + "dat_NTP_CONFIGURE_TITLE", + "dat_NTP_ENABLE_TITLE", + "dat_NTP_DISABLE_TITLE", + "dat_CURRENT_SETTING" + ], + "nb": [ + "dat_APRIL", + "dat_AUGUST", + "dat_SEPTEMBER", + "dat_NOVEMBER", + "dat_NTP_SERVER" + ], + "sv": [ + "dat_APRIL", + "dat_SEPTEMBER", + "dat_NOVEMBER", + "dat_DECEMBER" + ], + "br": [], + "pt": [], + "sl": [ + "dat_APRIL", + "dat_SEPTEMBER", + "dat_NOVEMBER", + "dat_DECEMBER" + ], + "fr": [], + "id": [ + "dat_APRIL", + "dat_SEPTEMBER" + ], + "tw": [], + "cn": [], + "it": [ + "dat_NETWORK_TIME_SERVER" + ], + "pl": [], + "bg": [], + "tr": [], + "ru": [], + "he": [], + "da": [ + "dat_APRIL", + "dat_AUGUST", + "dat_SEPTEMBER", + "dat_NOVEMBER", + "dat_DECEMBER" + ], + "ja": [ + "dat_FORM_TITLE", + "dat_SET_DATE_TITLE", + "dat_JANUARY", + "dat_FEBRUARY", + "dat_MARCH", + "dat_APRIL", + "dat_MAY", + "dat_JUNE", + "dat_JULY", + "dat_AUGUST", + "dat_SEPTEMBER", + "dat_OCTOBER", + "dat_NOVEMBER", + "dat_DECEMBER", + "dat_NEW_M/D/Y", + "dat_NEW_H/M/S", + "dat_AM/PM_AND_TZ", + "dat_NTP_ENABLE_DESC", + "dat_NTP_CONFIGURE_DESC", + "dat_NTP_SERVER", + "dat_VERIFY_DATE_AND_TIME", + "dat_NEW_DATE_AND_TIME", + "dat_SETTING_DATE_AND_TIME", + "dat_FOUR_DIGIT_YEAR", + "dat_INVALID_SECOND", + "dat_ERR_SETTING_CLOCK", + "dat_SERVER_DISABLED", + "dat_ERR_CHANGING_TS", + "dat_SETTINGS_CHANGED", + "dat_NETWORK_TIME_SERVER", + "dat_NTP_CONFIGURE_TITLE", + "dat_NTP_ENABLE_TITLE", + "dat_NTP_DISABLE_TITLE", + "dat_CURRENT_SETTING" + ], + "et": [ + "dat_AUGUST", + "dat_SEPTEMBER", + "dat_NOVEMBER", + "dat_NTP_SERVER", + "dat_ERR_SETTING_CLOCK" + ], + "hu": [ + "dat_NOVEMBER", + "dat_DECEMBER" + ], + "nl": [ + "dat_NTP_SERVER" + ], + "es": [], + "de": [ + "dat_APRIL", + "dat_AUGUST", + "dat_SEPTEMBER", + "dat_NOVEMBER" + ] +} \ No newline at end of file diff --git a/missing_translations_Directory.json b/missing_translations_Directory.json new file mode 100644 index 0000000..fdca27b --- /dev/null +++ b/missing_translations_Directory.json @@ -0,0 +1,66 @@ +{ + "ja": [ + "dir_FORM_TITLE", + "dir_LABEL_ROOT", + "dir_DIRECTORY_ACCESS", + "dir_DEPARTMENT", + "dir_COMPANY", + "dir_STREET", + "dir_CITY", + "dir_PHONENUMBER", + "dir_EXISTING", + "dir_SUCCESS", + "dir_LEAVE", + "dir_UPDATE" + ], + "de": [], + "th": [ + "dir_LABEL_ROOT", + "dir_DIRECTORY_ACCESS" + ], + "et": [], + "nb": [ + "dir_LABEL_ROOT" + ], + "hu": [], + "tr": [], + "pt": [], + "br": [], + "es": [], + "bg": [ + "dir_LABEL_ROOT" + ], + "fr": [], + "id": [ + "dir_LABEL_ROOT" + ], + "da": [], + "el": [], + "nl": [ + "dir_LABEL_ROOT" + ], + "ru": [], + "cn": [ + "dir_LABEL_ROOT" + ], + "ro": [], + "tw": [], + "sv": [], + "sl": [], + "it": [], + "he": [ + "dir_FORM_TITLE", + "dir_LABEL_ROOT", + "dir_DIRECTORY_ACCESS", + "dir_DEPARTMENT", + "dir_COMPANY", + "dir_STREET", + "dir_CITY", + "dir_PHONENUMBER", + "dir_EXISTING", + "dir_SUCCESS", + "dir_LEAVE", + "dir_UPDATE" + ], + "pl": [] +} \ No newline at end of file diff --git a/missing_translations_Domains.json b/missing_translations_Domains.json new file mode 100644 index 0000000..fe4bb24 --- /dev/null +++ b/missing_translations_Domains.json @@ -0,0 +1,83 @@ +{ + "nb": [], + "ro": [ + "dom_FORM_TITLE", + "dom_PRIMARY_SITE", + "dom_CREATE_TITLE", + "dom_MODIFY_TITLE", + "dom_REMOVE_TITLE", + "dom_LABEL_CORPORATE_DNS_PRIMARY", + "dom_LABEL_CORPORATE_DNS_SECONDARY", + "dom_LABEL_NAMESERVERS", + "dom_localhost", + "dom_internet", + "dom_corporate" + ], + "hu": [], + "bg": [], + "th": [ + "dom_LABEL_NAMESERVERS" + ], + "cn": [], + "sv": [], + "et": [ + "dom_FORM_TITLE", + "dom_PRIMARY_SITE", + "dom_localhost" + ], + "fr": [], + "el": [], + "ja": [ + "dom_FORM_TITLE", + "dom_PRIMARY_SITE", + "dom_CREATE_TITLE", + "dom_MODIFY_TITLE", + "dom_REMOVE_TITLE", + "dom_LABEL_CORPORATE_DNS_PRIMARY", + "dom_LABEL_CORPORATE_DNS_SECONDARY", + "dom_LABEL_NAMESERVERS", + "dom_localhost", + "dom_internet", + "dom_corporate" + ], + "pt": [], + "sl": [], + "it": [], + "tr": [], + "pl": [ + "dom_FORM_TITLE", + "dom_PRIMARY_SITE", + "dom_CREATE_TITLE", + "dom_MODIFY_TITLE", + "dom_REMOVE_TITLE", + "dom_LABEL_CORPORATE_DNS_PRIMARY", + "dom_LABEL_CORPORATE_DNS_SECONDARY", + "dom_LABEL_NAMESERVERS", + "dom_localhost", + "dom_internet", + "dom_corporate" + ], + "tw": [], + "es": [], + "br": [], + "he": [ + "dom_FORM_TITLE", + "dom_PRIMARY_SITE", + "dom_CREATE_TITLE", + "dom_MODIFY_TITLE", + "dom_REMOVE_TITLE", + "dom_LABEL_CORPORATE_DNS_PRIMARY", + "dom_LABEL_CORPORATE_DNS_SECONDARY", + "dom_LABEL_NAMESERVERS", + "dom_localhost", + "dom_internet", + "dom_corporate" + ], + "nl": [ + "dom_internet" + ], + "da": [], + "de": [], + "ru": [], + "id": [] +} \ No newline at end of file diff --git a/missing_translations_Emailsettings.json b/missing_translations_Emailsettings.json new file mode 100644 index 0000000..315f9ae --- /dev/null +++ b/missing_translations_Emailsettings.json @@ -0,0 +1,361 @@ +{ + "sv": [ + "mai_STANDARD", + "mai_MULTIDROP" + ], + "cn": [ + "mai_MULTIDROP" + ], + "el": [ + "mai_LABEL_SPAM_SUBJECT" + ], + "nb": [ + "mai_STANDARD", + "mai_MULTIDROP" + ], + "ro": [ + "mai_FORM_TITLE", + "mai_SUCCESS", + "mai_NEVER", + "mai_EVERY5MIN", + "mai_EVERY15MIN", + "mai_EVERY30MIN", + "mai_EVERYHOUR", + "mai_EVERY2HRS", + "mai_STANDARD", + "mai_ETRN", + "mai_SPECIFY_BELOW", + "mai_MULTIDROP", + "mai_LABEL_MODE", + "mai_LABEL_DELEGATE", + "mai_LABEL_SECONDARY", + "mai_LABEL_FETCH_PERIOD", + "mai_LABEL_FETCH_PERIOD_NIGHTS", + "mai_LABEL_FETCH_PERIOD_WEEKENDS", + "mai_LABEL_POP_PASS", + "mai_LABEL_POP_ACCOUNT", + "mai_LABEL_SORT_METHOD", + "mai_LABEL_SORT_HEADER", + "mai_LABEL_FETCH_PROTO", + "mai_LABEL_FETCH_SECURE", + "mai_AUTO", + "mai_ENABLED_BOTH", + "mai_ENABLED_SECURE_ONLY", + "mai_ONLY_LOCAL_NETWORK_SSL", + "mai_INSECURE_POP3", + "mai_ALLOW_PRIVATE", + "mai_SECURE_POP3", + "mai_INSECURE_IMAP", + "mai_SECURE_IMAP", + "mai_INSECURE_SMTP", + "mai_SECURE_SMTP", + "mai_LABEL_POP_ACCESS_CONTROL", + "mai_LABEL_IMAP_ACCESS_CONTROL", + "mai_LABEL_SMTP_AUTH_CONTROL", + "mai_FORWARD_TO_ADMIN", + "mai_FORWARD_TO", + "mai_LABEL_UNKNOWN", + "mai_LABEL_SMARTHOST", + "mai_LABEL_WEBMAIL", + "mai_LABEL_BLOCK_EXECUTABLE_CONTENT", + "mai_LABEL_CONTENT_TO_BLOCK", + "mai_LABEL_VIRUS_SCAN", + "mai_LABEL_SPAM_SCAN", + "mai_LABEL_SPAM_SUBJECT", + "mai_LABEL_SPAM_SENSITIVITY", + "mai_LABEL_SPAM_TAGLEVEL", + "mai_LABEL_SPAM_REJECTLEVEL", + "mai_LABEL_SPAM_SUBJECTTAG", + "mai_LABEL_SORTSPAM", + "mai_VERYHIGH", + "mai_HIGH", + "mai_MEDIUM", + "mai_LOW", + "mai_VERYLOW", + "mai_CUSTOM", + "mai_LABEL_SMARTHOST_SMTPAUTH_STATUS", + "mai_LABEL_SMARTHOST_SMTPAUTH_USERID", + "mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD" + ], + "es": [ + "E-mail", + "mai_MULTIDROP" + ], + "sl": [ + "mai_MULTIDROP", + "mai_ALLOW_PRIVATE", + "mai_LABEL_SPAM_SUBJECT" + ], + "id": [ + "mai_STANDARD", + "mai_DEFAULT", + "mai_MULTIDROP", + "mai_LABEL_BLOCK_EXECUTABLE_CONTENT", + "mai_LABEL_VIRUS_SCAN", + "mai_LABEL_SPAM_SCAN", + "mai_LABEL_SPAM_SUBJECT", + "mai_LABEL_SPAM_TAGLEVEL", + "mai_LABEL_SPAM_REJECTLEVEL", + "mai_CUSTOM" + ], + "hu": [ + "mai_MULTIDROP" + ], + "pl": [ + "mai_FORM_TITLE", + "mai_SUCCESS", + "mai_NEVER", + "mai_EVERY5MIN", + "mai_EVERY15MIN", + "mai_EVERY30MIN", + "mai_EVERYHOUR", + "mai_EVERY2HRS", + "mai_STANDARD", + "mai_ETRN", + "mai_SPECIFY_BELOW", + "mai_MULTIDROP", + "mai_LABEL_MODE", + "mai_LABEL_DELEGATE", + "mai_LABEL_SECONDARY", + "mai_LABEL_FETCH_PERIOD", + "mai_LABEL_FETCH_PERIOD_NIGHTS", + "mai_LABEL_FETCH_PERIOD_WEEKENDS", + "mai_LABEL_POP_PASS", + "mai_LABEL_POP_ACCOUNT", + "mai_LABEL_SORT_METHOD", + "mai_LABEL_SORT_HEADER", + "mai_LABEL_FETCH_PROTO", + "mai_LABEL_FETCH_SECURE", + "mai_AUTO", + "mai_ENABLED_BOTH", + "mai_ENABLED_SECURE_ONLY", + "mai_ONLY_LOCAL_NETWORK_SSL", + "mai_INSECURE_POP3", + "mai_ALLOW_PRIVATE", + "mai_SECURE_POP3", + "mai_INSECURE_IMAP", + "mai_SECURE_IMAP", + "mai_INSECURE_SMTP", + "mai_SECURE_SMTP", + "mai_LABEL_POP_ACCESS_CONTROL", + "mai_LABEL_IMAP_ACCESS_CONTROL", + "mai_LABEL_SMTP_AUTH_CONTROL", + "mai_FORWARD_TO_ADMIN", + "mai_FORWARD_TO", + "mai_LABEL_UNKNOWN", + "mai_LABEL_SMARTHOST", + "mai_LABEL_WEBMAIL", + "mai_LABEL_BLOCK_EXECUTABLE_CONTENT", + "mai_LABEL_CONTENT_TO_BLOCK", + "mai_LABEL_VIRUS_SCAN", + "mai_LABEL_SPAM_SCAN", + "mai_LABEL_SPAM_SUBJECT", + "mai_LABEL_SPAM_SENSITIVITY", + "mai_LABEL_SPAM_TAGLEVEL", + "mai_LABEL_SPAM_REJECTLEVEL", + "mai_LABEL_SPAM_SUBJECTTAG", + "mai_LABEL_SORTSPAM", + "mai_VERYHIGH", + "mai_HIGH", + "mai_MEDIUM", + "mai_LOW", + "mai_VERYLOW", + "mai_CUSTOM", + "mai_LABEL_SMARTHOST_SMTPAUTH_STATUS", + "mai_LABEL_SMARTHOST_SMTPAUTH_USERID", + "mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD" + ], + "ru": [ + "mai_MULTIDROP" + ], + "et": [ + "mai_STANDARD", + "mai_ETRN", + "mai_SPECIFY_BELOW", + "mai_MULTIDROP", + "mai_LABEL_MODE", + "mai_LABEL_DELEGATE", + "mai_LABEL_SECONDARY", + "mai_LABEL_FETCH_PERIOD", + "mai_LABEL_FETCH_PERIOD_NIGHTS", + "mai_LABEL_FETCH_PERIOD_WEEKENDS", + "mai_LABEL_SORT_HEADER", + "mai_LABEL_SMARTHOST", + "mai_LABEL_SMARTHOST_SMTPAUTH_STATUS", + "mai_LABEL_SMARTHOST_SMTPAUTH_USERID", + "mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD" + ], + "tr": [ + "mai_STANDARD", + "mai_MULTIDROP" + ], + "de": [ + "mai_STANDARD" + ], + "pt": [ + "E-mail", + "mai_MULTIDROP", + "mai_LABEL_SPAM_SUBJECT" + ], + "th": [ + "mai_ETRN", + "mai_MULTIDROP" + ], + "fr": [ + "mai_STANDARD" + ], + "tw": [ + "mai_MULTIDROP" + ], + "it": [ + "E-mail", + "mai_STANDARD", + "mai_DEFAULT", + "mai_MULTIDROP" + ], + "br": [ + "mai_MULTIDROP" + ], + "ja": [ + "mai_FORM_TITLE", + "E-mail", + "mai_SUCCESS", + "mai_NEVER", + "mai_EVERY5MIN", + "mai_EVERY15MIN", + "mai_EVERY30MIN", + "mai_EVERYHOUR", + "mai_EVERY2HRS", + "mai_STANDARD", + "mai_ETRN", + "mai_SPECIFY_BELOW", + "mai_MULTIDROP", + "mai_LABEL_MODE", + "mai_LABEL_DELEGATE", + "mai_LABEL_SECONDARY", + "mai_LABEL_FETCH_PERIOD", + "mai_LABEL_FETCH_PERIOD_NIGHTS", + "mai_LABEL_FETCH_PERIOD_WEEKENDS", + "mai_LABEL_POP_PASS", + "mai_LABEL_POP_ACCOUNT", + "mai_LABEL_SORT_METHOD", + "mai_LABEL_SORT_HEADER", + "mai_LABEL_FETCH_PROTO", + "mai_LABEL_FETCH_SECURE", + "mai_AUTO", + "mai_ENABLED_BOTH", + "mai_ENABLED_SECURE_ONLY", + "mai_ONLY_LOCAL_NETWORK_SSL", + "mai_INSECURE_POP3", + "mai_ALLOW_PRIVATE", + "mai_SECURE_POP3", + "mai_INSECURE_IMAP", + "mai_SECURE_IMAP", + "mai_INSECURE_SMTP", + "mai_SECURE_SMTP", + "mai_LABEL_POP_ACCESS_CONTROL", + "mai_LABEL_IMAP_ACCESS_CONTROL", + "mai_LABEL_SMTP_AUTH_CONTROL", + "mai_FORWARD_TO_ADMIN", + "mai_FORWARD_TO", + "mai_LABEL_UNKNOWN", + "mai_LABEL_SMARTHOST", + "mai_LABEL_WEBMAIL", + "mai_LABEL_BLOCK_EXECUTABLE_CONTENT", + "mai_LABEL_CONTENT_TO_BLOCK", + "mai_LABEL_VIRUS_SCAN", + "mai_LABEL_SPAM_SCAN", + "mai_LABEL_SPAM_SUBJECT", + "mai_LABEL_SPAM_SENSITIVITY", + "mai_LABEL_SPAM_TAGLEVEL", + "mai_LABEL_SPAM_REJECTLEVEL", + "mai_LABEL_SPAM_SUBJECTTAG", + "mai_LABEL_SORTSPAM", + "mai_VERYHIGH", + "mai_HIGH", + "mai_MEDIUM", + "mai_LOW", + "mai_VERYLOW", + "mai_CUSTOM", + "mai_LABEL_SMARTHOST_SMTPAUTH_STATUS", + "mai_LABEL_SMARTHOST_SMTPAUTH_USERID", + "mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD" + ], + "da": [ + "mai_STANDARD", + "mai_MULTIDROP", + "mai_LABEL_FETCH_SECURE", + "mai_LABEL_VIRUS_SCAN" + ], + "nl": [ + "E-mail", + "mai_MULTIDROP" + ], + "he": [ + "mai_FORM_TITLE", + "mai_SUCCESS", + "mai_NEVER", + "mai_EVERY5MIN", + "mai_EVERY15MIN", + "mai_EVERY30MIN", + "mai_EVERYHOUR", + "mai_EVERY2HRS", + "mai_STANDARD", + "mai_ETRN", + "mai_SPECIFY_BELOW", + "mai_MULTIDROP", + "mai_LABEL_MODE", + "mai_LABEL_DELEGATE", + "mai_LABEL_SECONDARY", + "mai_LABEL_FETCH_PERIOD", + "mai_LABEL_FETCH_PERIOD_NIGHTS", + "mai_LABEL_FETCH_PERIOD_WEEKENDS", + "mai_LABEL_POP_PASS", + "mai_LABEL_POP_ACCOUNT", + "mai_LABEL_SORT_METHOD", + "mai_LABEL_SORT_HEADER", + "mai_LABEL_FETCH_PROTO", + "mai_LABEL_FETCH_SECURE", + "mai_AUTO", + "mai_ENABLED_BOTH", + "mai_ENABLED_SECURE_ONLY", + "mai_ONLY_LOCAL_NETWORK_SSL", + "mai_INSECURE_POP3", + "mai_ALLOW_PRIVATE", + "mai_SECURE_POP3", + "mai_INSECURE_IMAP", + "mai_SECURE_IMAP", + "mai_INSECURE_SMTP", + "mai_SECURE_SMTP", + "mai_LABEL_POP_ACCESS_CONTROL", + "mai_LABEL_IMAP_ACCESS_CONTROL", + "mai_LABEL_SMTP_AUTH_CONTROL", + "mai_FORWARD_TO_ADMIN", + "mai_FORWARD_TO", + "mai_LABEL_UNKNOWN", + "mai_LABEL_SMARTHOST", + "mai_LABEL_WEBMAIL", + "mai_LABEL_BLOCK_EXECUTABLE_CONTENT", + "mai_LABEL_CONTENT_TO_BLOCK", + "mai_LABEL_VIRUS_SCAN", + "mai_LABEL_SPAM_SCAN", + "mai_LABEL_SPAM_SUBJECT", + "mai_LABEL_SPAM_SENSITIVITY", + "mai_LABEL_SPAM_TAGLEVEL", + "mai_LABEL_SPAM_REJECTLEVEL", + "mai_LABEL_SPAM_SUBJECTTAG", + "mai_LABEL_SORTSPAM", + "mai_VERYHIGH", + "mai_HIGH", + "mai_MEDIUM", + "mai_LOW", + "mai_VERYLOW", + "mai_CUSTOM", + "mai_LABEL_SMARTHOST_SMTPAUTH_STATUS", + "mai_LABEL_SMARTHOST_SMTPAUTH_USERID", + "mai_LABEL_SMARTHOST_SMTPAUTH_PASSWD" + ], + "bg": [ + "mai_MULTIDROP" + ] +} \ No newline at end of file diff --git a/missing_translations_General.json b/missing_translations_General.json new file mode 100644 index 0000000..d3d51b9 --- /dev/null +++ b/missing_translations_General.json @@ -0,0 +1,519 @@ +{ + "ja": [ + "Miscellaneous", + "Your Settings", + "ENABLED", + "DISABLED", + "COMMENT", + "SELF", + "ACTION", + "ROUTER", + "OPERATION_STATUS_REPORT", + "NO_PIPES_ALLOWED", + "ERROR_BELOW", + "ACCESS", + "ACCOUNT_LOCKED", + "GROUP_ADD", + "NETWORKS_ALLOW_LOCAL", + "NETWORKS_ALLOW_PUBLIC", + "DESCRIPTION_BRIEF", + "RESET_PASSWORD_TITLE", + "ACCOUNT_PASSWORD_CHANGE", + "CREATE_GROUP", + "USER_LIST_CURRENT", + "DOMAIN_NAME", + "ERROR_UPDATING_CONFIGURATION", + "GROUP_MEMBERS", + "GROUP_NAME", + "USER_INVALID", + "MB", + "MODIFY_USER_GROUP", + "PASSWORD_VERIFY_NEW", + "PASSWORD_NEW", + "OFF", + "OK", + "PASSWORD_OLD", + "ON", + "PERFORM", + "RECONFIGURE", + "REMOVE_USER_GROUP", + "PASSWORD_RESET", + "RESTORE", + "SHUTDOWN", + "SUCCESS", + "ACCOUNT_NAME_INVALID", + "ACCOUNT_NAME_INVALID_CHARS", + "PASSWORD_OLD_INVALID_CHARS", + "PASSWORD_INVALID_CHARS", + "PASSWORD_VERIFY_ERROR", + "ACCOUNT_USER_NONE", + "ACCOUNT_GROUP_NONE", + "ERROR_INVALID_CHARS", + "USER_NAME", + "YOUR_ACCOUNT", + "YOUR_ACCOUNT_INVALID", + "PASSWORD_CHANGE_SUCCESS", + "FM_NONBLANK", + "FM_INTEGER", + "FM_NUMBER", + "FM_WORD", + "FM_DATE", + "FM_CREDIT_CARD_NUMBER1", + "FM_CREDIT_CARD_NUMBER2", + "FM_CREDIT_CARD_NUMBER3", + "FM_CREDIT_CARD_NUMBER4", + "FM_CREDIT_CARD_EXPIRY1", + "FM_CREDIT_CARD_EXPIRY2", + "FM_CREDIT_CARD_EXPIRY3", + "FM_CREDIT_CARD_EXPIRY4", + "FM_ISO_COUNTRY_CODE1", + "FM_ISO_COUNTRY_CODE2", + "FM_US_STATE", + "FM_US_ZIPCODE", + "FM_EXACTLENGTH1", + "FM_EXACTLENGTH2", + "FM_LENGTHRANGE1", + "FM_LENGTHRANGE2", + "FM_URL", + "FM_EMAIL_SIMPLE1", + "FM_EMAIL_SIMPLE2", + "FM_DOMAIN_NAME", + "FM_IP_NUMBER1", + "FM_IP_NUMBER2", + "FM_USERNAME", + "FM_PASSWORD1", + "FM_MAC_ADDRESS1", + "FM_MAC_ADDRESS2", + "FM_ERR_UNEXPECTED_DESC", + "CSRF_VALIDATION_FAILURE" + ], + "id": [ + "ENABLED", + "DISABLED", + "REMOTE", + "ROUTER", + "BACKUP", + "DOMAIN", + "DOWNLOAD", + "MB", + "OK", + "CSRF_VALIDATION_FAILURE" + ], + "he": [ + "Collaboration", + "Administration", + "Security", + "Miscellaneous", + "Your Settings", + "CANCEL", + "ENABLED", + "DISABLED", + "NO", + "YES", + "CREATE", + "COMMENT", + "NEXT", + "SELF", + "LOCAL", + "NETWORK", + "ROUTER", + "OPERATION_STATUS_REPORT", + "GROUP", + "NO_PIPES_ALLOWED", + "ERROR_BELOW", + "ACCESS", + "ACCOUNT_LOCKED", + "GROUP_ADD", + "NETWORKS_ALLOW_LOCAL", + "NETWORKS_ALLOW_PUBLIC", + "ERROR_PASSWORD_CHANGE", + "BACKUP", + "DESCRIPTION_BRIEF", + "PASSWORD_CHANGE", + "RESET_PASSWORD_TITLE", + "ACCOUNT_PASSWORD_CHANGE", + "CONTENT", + "CREATE_GROUP", + "USER_LIST_CURRENT", + "DESTINATION", + "DOMAIN_NAME", + "DOMAIN", + "DOMAINS", + "DOWNLOAD", + "ERROR_UPDATING_CONFIGURATION", + "GROUP_MEMBERS", + "GROUP_NAME", + "GROUPS", + "IP_ADDRESS_OR_FQDN", + "USER_INVALID", + "LOCATION", + "MODIFY_USER_GROUP", + "PASSWORD_VERIFY_NEW", + "PASSWORD_NEW", + "OFF", + "OK", + "PASSWORD_OLD", + "ON", + "PERFORM", + "RECONFIGURE", + "REMOVE_USER_GROUP", + "PASSWORD_RESET", + "RESTORE", + "SHUTDOWN", + "SUCCESS", + "ACCOUNT_NAME_INVALID", + "ACCOUNT_NAME_INVALID_CHARS", + "PASSWORD_OLD_INVALID_CHARS", + "PASSWORD_INVALID_CHARS", + "PASSWORD_VERIFY_ERROR", + "ACCOUNT_USER_NONE", + "ACCOUNT_GROUP_NONE", + "ERROR_INVALID_CHARS", + "USER_NAME", + "YOUR_ACCOUNT", + "YOUR_ACCOUNT_INVALID", + "PASSWORD_CHANGE_SUCCESS", + "FM_NONBLANK", + "FM_INTEGER", + "FM_NUMBER", + "FM_WORD", + "FM_DATE", + "FM_CREDIT_CARD_NUMBER1", + "FM_CREDIT_CARD_NUMBER2", + "FM_CREDIT_CARD_NUMBER3", + "FM_CREDIT_CARD_NUMBER4", + "FM_CREDIT_CARD_EXPIRY1", + "FM_CREDIT_CARD_EXPIRY2", + "FM_CREDIT_CARD_EXPIRY3", + "FM_CREDIT_CARD_EXPIRY4", + "FM_ISO_COUNTRY_CODE1", + "FM_ISO_COUNTRY_CODE2", + "FM_US_STATE", + "FM_US_ZIPCODE", + "FM_EXACTLENGTH1", + "FM_EXACTLENGTH2", + "FM_LENGTHRANGE1", + "FM_LENGTHRANGE2", + "FM_URL", + "FM_EMAIL_SIMPLE1", + "FM_EMAIL_SIMPLE2", + "FM_DOMAIN_NAME", + "FM_IP_NUMBER1", + "FM_IP_NUMBER2", + "FM_USERNAME", + "FM_PASSWORD1", + "FM_MAC_ADDRESS1", + "FM_MAC_ADDRESS2", + "FM_ERR_UNEXPECTED_DESC", + "CSRF_VALIDATION_FAILURE" + ], + "ru": [ + "OK", + "CSRF_VALIDATION_FAILURE" + ], + "tw": [ + "CSRF_VALIDATION_FAILURE" + ], + "fr": [ + "Collaboration", + "Administration", + "Configuration", + "LOCAL", + "ACTION", + "DESCRIPTION", + "DESTINATION", + "OK" + ], + "et": [ + "Collaboration", + "MB", + "OK", + "PERFORM", + "FM_US_STATE", + "FM_EXACTLENGTH1", + "FM_EXACTLENGTH2", + "FM_LENGTHRANGE2", + "CSRF_VALIDATION_FAILURE" + ], + "el": [ + "MB", + "FM_IP_NUMBER2", + "CSRF_VALIDATION_FAILURE" + ], + "it": [ + "NO", + "ROUTER", + "BACKUP", + "DOWNLOAD", + "MB", + "OK", + "PASSWORD", + "CSRF_VALIDATION_FAILURE" + ], + "tr": [ + "MB", + "CSRF_VALIDATION_FAILURE" + ], + "es": [ + "NO", + "LOCAL", + "ROUTER", + "MB", + "OK", + "CSRF_VALIDATION_FAILURE" + ], + "sl": [ + "Your Settings", + "COMMENT", + "SELF", + "LOCAL", + "ROUTER", + "NETWORKS_ALLOW_PUBLIC", + "MB", + "OK", + "FM_US_STATE", + "FM_US_ZIPCODE", + "CSRF_VALIDATION_FAILURE" + ], + "nb": [ + "MB", + "OK", + "CSRF_VALIDATION_FAILURE" + ], + "nl": [ + "ROUTER", + "ACCOUNT", + "OK", + "CSRF_VALIDATION_FAILURE" + ], + "pl": [ + "Miscellaneous", + "Your Settings", + "ENABLED", + "DISABLED", + "COMMENT", + "SELF", + "ACTION", + "ROUTER", + "RESET_PASSWORD_TITLE", + "ACCOUNT_PASSWORD_CHANGE", + "CREATE_GROUP", + "USER_LIST_CURRENT", + "DOMAIN_NAME", + "ERROR_UPDATING_CONFIGURATION", + "GROUP_MEMBERS", + "GROUP_NAME", + "USER_INVALID", + "MB", + "MODIFY_USER_GROUP", + "PASSWORD_VERIFY_NEW", + "PASSWORD_NEW", + "OFF", + "OK", + "PASSWORD_OLD", + "ON", + "PERFORM", + "REMOVE_USER_GROUP", + "PASSWORD_RESET", + "RESTORE", + "SUCCESS", + "ACCOUNT_NAME_INVALID", + "ACCOUNT_NAME_INVALID_CHARS", + "PASSWORD_OLD_INVALID_CHARS", + "PASSWORD_INVALID_CHARS", + "PASSWORD_VERIFY_ERROR", + "ACCOUNT_USER_NONE", + "ACCOUNT_GROUP_NONE", + "ERROR_INVALID_CHARS", + "USER_NAME", + "YOUR_ACCOUNT", + "YOUR_ACCOUNT_INVALID", + "PASSWORD_CHANGE_SUCCESS", + "FM_NONBLANK", + "FM_INTEGER", + "FM_NUMBER", + "FM_WORD", + "FM_DATE", + "FM_CREDIT_CARD_NUMBER1", + "FM_CREDIT_CARD_NUMBER2", + "FM_CREDIT_CARD_NUMBER3", + "FM_CREDIT_CARD_NUMBER4", + "FM_CREDIT_CARD_EXPIRY1", + "FM_CREDIT_CARD_EXPIRY2", + "FM_CREDIT_CARD_EXPIRY3", + "FM_CREDIT_CARD_EXPIRY4", + "FM_ISO_COUNTRY_CODE1", + "FM_ISO_COUNTRY_CODE2", + "FM_US_STATE", + "FM_US_ZIPCODE", + "FM_EXACTLENGTH1", + "FM_EXACTLENGTH2", + "FM_LENGTHRANGE1", + "FM_LENGTHRANGE2", + "FM_URL", + "FM_EMAIL_SIMPLE1", + "FM_EMAIL_SIMPLE2", + "FM_DOMAIN_NAME", + "FM_IP_NUMBER1", + "FM_IP_NUMBER2", + "FM_USERNAME", + "FM_PASSWORD1", + "FM_MAC_ADDRESS1", + "FM_MAC_ADDRESS2", + "FM_ERR_UNEXPECTED_DESC", + "CSRF_VALIDATION_FAILURE" + ], + "bg": [ + "MB", + "CSRF_VALIDATION_FAILURE" + ], + "cn": [ + "MB", + "CSRF_VALIDATION_FAILURE" + ], + "br": [ + "LOCAL", + "DESC_SECTIONBAR", + "BACKUP", + "MB", + "OK", + "ON", + "CSRF_VALIDATION_FAILURE" + ], + "hu": [ + "MB" + ], + "de": [ + "Administration", + "ROUTER", + "MB", + "NAME", + "OK", + "CSRF_VALIDATION_FAILURE" + ], + "th": [ + "MB", + "CSRF_VALIDATION_FAILURE" + ], + "sv": [ + "Administration", + "ROUTER", + "DESC_SECTIONBAR", + "BACKUP", + "DESTINATION", + "MB", + "OK", + "CSRF_VALIDATION_FAILURE" + ], + "pt": [ + "LOCAL", + "BACKUP", + "MB", + "OK", + "ON", + "CSRF_VALIDATION_FAILURE" + ], + "da": [ + "Administration", + "ROUTER", + "DESTINATION", + "MB", + "OK", + "CSRF_VALIDATION_FAILURE" + ], + "ro": [ + "Collaboration", + "Security", + "Miscellaneous", + "Your Settings", + "DISABLED", + "CREATE", + "COMMENT", + "SELF", + "LOCAL", + "NETWORK", + "ROUTER", + "GROUP", + "NO_PIPES_ALLOWED", + "ERROR_BELOW", + "ACCESS", + "ACCOUNT_LOCKED", + "GROUP_ADD", + "NETWORKS_ALLOW_LOCAL", + "NETWORKS_ALLOW_PUBLIC", + "ERROR_PASSWORD_CHANGE", + "BACKUP", + "DESCRIPTION_BRIEF", + "RESET_PASSWORD_TITLE", + "CONTENT", + "CREATE_GROUP", + "USER_LIST_CURRENT", + "DESTINATION", + "DOMAIN_NAME", + "DOMAIN", + "DOMAINS", + "ERROR_UPDATING_CONFIGURATION", + "GROUP_MEMBERS", + "GROUP_NAME", + "GROUPS", + "IP_ADDRESS_OR_FQDN", + "USER_INVALID", + "LOCATION", + "MODIFY_USER_GROUP", + "PASSWORD_VERIFY_NEW", + "PASSWORD_NEW", + "OFF", + "OK", + "PASSWORD_OLD", + "ON", + "REMOVE_USER_GROUP", + "PASSWORD_RESET", + "RESTORE", + "SUCCESS", + "ACCOUNT_NAME_INVALID", + "ACCOUNT_NAME_INVALID_CHARS", + "PASSWORD_OLD_INVALID_CHARS", + "PASSWORD_INVALID_CHARS", + "PASSWORD_VERIFY_ERROR", + "ACCOUNT_USER_NONE", + "ACCOUNT_GROUP_NONE", + "ERROR_INVALID_CHARS", + "USER_NAME", + "YOUR_ACCOUNT", + "YOUR_ACCOUNT_INVALID", + "PASSWORD_CHANGE_SUCCESS", + "FM_NONBLANK", + "FM_INTEGER", + "FM_NUMBER", + "FM_WORD", + "FM_DATE", + "FM_CREDIT_CARD_NUMBER1", + "FM_CREDIT_CARD_NUMBER2", + "FM_CREDIT_CARD_NUMBER3", + "FM_CREDIT_CARD_NUMBER4", + "FM_CREDIT_CARD_EXPIRY1", + "FM_CREDIT_CARD_EXPIRY2", + "FM_CREDIT_CARD_EXPIRY3", + "FM_CREDIT_CARD_EXPIRY4", + "FM_ISO_COUNTRY_CODE1", + "FM_ISO_COUNTRY_CODE2", + "FM_US_STATE", + "FM_US_ZIPCODE", + "FM_EXACTLENGTH1", + "FM_EXACTLENGTH2", + "FM_LENGTHRANGE1", + "FM_LENGTHRANGE2", + "FM_URL", + "FM_EMAIL_SIMPLE1", + "FM_EMAIL_SIMPLE2", + "FM_DOMAIN_NAME", + "FM_IP_NUMBER1", + "FM_IP_NUMBER2", + "FM_USERNAME", + "FM_PASSWORD1", + "FM_MAC_ADDRESS1", + "FM_MAC_ADDRESS2", + "FM_ERR_UNEXPECTED_DESC", + "CSRF_VALIDATION_FAILURE" + ] +} \ No newline at end of file diff --git a/missing_translations_Groups.json b/missing_translations_Groups.json new file mode 100644 index 0000000..08a01b0 --- /dev/null +++ b/missing_translations_Groups.json @@ -0,0 +1,41 @@ +{ + "ro": [], + "et": [ + "grp_GROUP_DESC" + ], + "fr": [], + "cn": [], + "ru": [], + "bg": [], + "he": [], + "es": [], + "ja": [ + "grp_FORM_TITLE", + "grp_INVALID_GROUP_DESCRIPTION", + "grp_CREATED_GROUP", + "grp_DELETED_GROUP", + "grp_MODIFIED_GROUP", + "grp_CREATE_ERROR", + "grp_DELETE_ERROR", + "grp_MODIFY_ERROR", + "grp_GROUP_HAS_MEMBERS", + "grp_NOT_A_GROUP", + "grp_GROUP_DESC" + ], + "nb": [], + "tw": [], + "pl": [], + "br": [], + "de": [], + "id": [], + "sl": [], + "tr": [], + "sv": [], + "it": [], + "th": [], + "nl": [], + "da": [], + "pt": [], + "hu": [], + "el": [] +} \ No newline at end of file diff --git a/missing_translations_Hostentries.json b/missing_translations_Hostentries.json new file mode 100644 index 0000000..4fc2f48 --- /dev/null +++ b/missing_translations_Hostentries.json @@ -0,0 +1,125 @@ +{ + "el": [], + "es": [], + "hu": [], + "nb": [], + "sv": [], + "it": [], + "bg": [], + "sl": [], + "pt": [], + "fr": [], + "he": [ + "hos_UNABLE_TO_OPEN_CONFIGDB", + "hos_HOSTNAME", + "hos_HOSTTYPE", + "hos_LOCAL_IP", + "hos_ETHERNET_ADDRESS", + "hos_SUCCESSFULLY_CREATED", + "hos_CREATE_LOCAL_HOST_TITLE", + "hos_CREATE_REMOTE_HOST_TITLE", + "hos_CREATE_TITLE", + "hos_SUCCESSFULLY_DELETED", + "hos_SUCCESSFULLY_MODIFIED", + "hos_CONFIRM_DESCRIPTION", + "hos_NO_HOSTS_FOR_THIS_DOMAIN", + "hos_ADDR_IN_DHCP_RANGE", + "hos_ERROR_WHILE_CREATING_HOST", + "hos_ERROR_WHILE_MODIFYING_HOST", + "hos_ERROR_WHILE_DELETING_HOST", + "hos_ERR_IP_IS_LOCAL_OR_GATEWAY", + "hos_ERR_IP_NOT_LOCAL" + ], + "ru": [ + "hos_NO_HOSTS_FOR_THIS_DOMAIN" + ], + "tr": [], + "tw": [], + "ro": [ + "hos_UNABLE_TO_OPEN_CONFIGDB", + "hos_HOSTNAME", + "hos_HOSTTYPE", + "hos_LOCAL_IP", + "hos_ETHERNET_ADDRESS", + "hos_SUCCESSFULLY_CREATED", + "hos_CREATE_LOCAL_HOST_TITLE", + "hos_CREATE_REMOTE_HOST_TITLE", + "hos_CREATE_TITLE", + "hos_SUCCESSFULLY_DELETED", + "hos_SUCCESSFULLY_MODIFIED", + "hos_CONFIRM_DESCRIPTION", + "hos_NO_HOSTS_FOR_THIS_DOMAIN", + "hos_ADDR_IN_DHCP_RANGE", + "hos_ERROR_WHILE_CREATING_HOST", + "hos_ERROR_WHILE_MODIFYING_HOST", + "hos_ERROR_WHILE_DELETING_HOST", + "hos_ERR_IP_IS_LOCAL_OR_GATEWAY", + "hos_ERR_IP_NOT_LOCAL" + ], + "id": [ + "hos_HOSTNAME" + ], + "et": [ + "hos_ETHERNET_ADDRESS", + "hos_CREATE_LOCAL_HOST_TITLE", + "hos_CREATE_REMOTE_HOST_TITLE", + "hos_CONFIRM_DESCRIPTION", + "hos_ADDR_IN_DHCP_RANGE", + "hos_ERROR_WHILE_CREATING_HOST", + "hos_ERROR_WHILE_MODIFYING_HOST", + "hos_ERROR_WHILE_DELETING_HOST", + "hos_ERR_IP_IS_LOCAL_OR_GATEWAY", + "hos_ERR_IP_NOT_LOCAL" + ], + "da": [], + "th": [ + "hos_LOCAL_IP" + ], + "ja": [ + "Hostnames and addresses", + "hos_UNABLE_TO_OPEN_CONFIGDB", + "hos_HOSTNAME", + "hos_LOCAL_IP", + "hos_ETHERNET_ADDRESS", + "hos_SUCCESSFULLY_CREATED", + "hos_CREATE_LOCAL_HOST_TITLE", + "hos_CREATE_REMOTE_HOST_TITLE", + "hos_CREATE_TITLE", + "hos_SUCCESSFULLY_DELETED", + "hos_SUCCESSFULLY_MODIFIED", + "hos_CONFIRM_DESCRIPTION", + "hos_NO_HOSTS_FOR_THIS_DOMAIN", + "hos_ADDR_IN_DHCP_RANGE", + "hos_ERROR_WHILE_CREATING_HOST", + "hos_ERROR_WHILE_MODIFYING_HOST", + "hos_ERROR_WHILE_DELETING_HOST", + "hos_ERR_IP_IS_LOCAL_OR_GATEWAY", + "hos_ERR_IP_NOT_LOCAL" + ], + "cn": [], + "de": [ + "hos_HOSTNAME" + ], + "pl": [ + "hos_UNABLE_TO_OPEN_CONFIGDB", + "hos_HOSTNAME", + "hos_LOCAL_IP", + "hos_ETHERNET_ADDRESS", + "hos_SUCCESSFULLY_CREATED", + "hos_CREATE_LOCAL_HOST_TITLE", + "hos_CREATE_REMOTE_HOST_TITLE", + "hos_CREATE_TITLE", + "hos_SUCCESSFULLY_DELETED", + "hos_SUCCESSFULLY_MODIFIED", + "hos_CONFIRM_DESCRIPTION", + "hos_NO_HOSTS_FOR_THIS_DOMAIN", + "hos_ADDR_IN_DHCP_RANGE", + "hos_ERROR_WHILE_CREATING_HOST", + "hos_ERROR_WHILE_MODIFYING_HOST", + "hos_ERROR_WHILE_DELETING_HOST", + "hos_ERR_IP_IS_LOCAL_OR_GATEWAY", + "hos_ERR_IP_NOT_LOCAL" + ], + "nl": [], + "br": [] +} \ No newline at end of file diff --git a/missing_translations_Ibays.json b/missing_translations_Ibays.json new file mode 100644 index 0000000..428d641 --- /dev/null +++ b/missing_translations_Ibays.json @@ -0,0 +1,100 @@ +{ + "ro": [ + "iba_FORM_TITLE", + "iba_ADD_TITLE", + "iba_NAME_LABEL", + "iba_USER_ACCESS", + "iba_PUBLIC_ACCESS", + "iba_ALLOW_DYNAMIC_CONTENT", + "iba_REMOVE_TITLE", + "iba_ERROR_WHILE_CREATING_IBAY", + "iba_SUCCESSFULLY_CREATED_IBAY", + "iba_NO_IBAYS", + "iba_ERROR_WHILE_MODIFYING_IBAY", + "iba_SUCCESSFULLY_MODIFIED_IBAY", + "iba_SUCCESSFULLY_DELETED_IBAY", + "iba_ERROR_WHILE_DELETING_IBAY", + "iba_IBAY_PASSWD_VALIDATION_ERROR", + "iba_IBAY_PASSWD_VERIFY_ERROR", + "iba_SUCCESSFULLY_RESET_PASSWORD", + "iba_ERROR_WHILE_RESETTING_PASSWORD" + ], + "et": [ + "iba_USER_ACCESS", + "iba_PUBLIC_ACCESS", + "iba_HTTPS_Only" + ], + "ru": [], + "nb": [ + "iba_HTTPS_Only" + ], + "sl": [ + "iba_HTTPS_Only" + ], + "cn": [], + "pl": [], + "tr": [ + "iba_HTTPS_Only" + ], + "id": [ + "iba_HTTPS_Only" + ], + "pt": [], + "ja": [ + "iba_FORM_TITLE", + "iba_ADD_TITLE", + "iba_NAME_LABEL", + "iba_USER_ACCESS", + "iba_PUBLIC_ACCESS", + "iba_ALLOW_DYNAMIC_CONTENT", + "iba_REMOVE_TITLE", + "iba_ERROR_WHILE_CREATING_IBAY", + "iba_SUCCESSFULLY_CREATED_IBAY", + "iba_NO_IBAYS", + "iba_ERROR_WHILE_MODIFYING_IBAY", + "iba_SUCCESSFULLY_MODIFIED_IBAY", + "iba_SUCCESSFULLY_DELETED_IBAY", + "iba_ERROR_WHILE_DELETING_IBAY", + "iba_IBAY_PASSWD_VALIDATION_ERROR", + "iba_IBAY_PASSWD_VERIFY_ERROR", + "iba_SUCCESSFULLY_RESET_PASSWORD", + "iba_ERROR_WHILE_RESETTING_PASSWORD", + "Information bays" + ], + "nl": [], + "br": [], + "da": [], + "it": [], + "es": [], + "hu": [], + "tw": [ + "iba_FORM_TITLE", + "iba_ADD_TITLE", + "iba_USER_ACCESS", + "iba_PUBLIC_ACCESS", + "iba_ALLOW_DYNAMIC_CONTENT", + "iba_REMOVE_TITLE", + "iba_ERROR_WHILE_CREATING_IBAY", + "iba_SUCCESSFULLY_CREATED_IBAY", + "iba_NO_IBAYS", + "iba_ERROR_WHILE_MODIFYING_IBAY", + "iba_SUCCESSFULLY_MODIFIED_IBAY", + "iba_SUCCESSFULLY_DELETED_IBAY", + "iba_ERROR_WHILE_DELETING_IBAY", + "iba_IBAY_PASSWD_VALIDATION_ERROR", + "iba_IBAY_PASSWD_VERIFY_ERROR", + "iba_SUCCESSFULLY_RESET_PASSWORD", + "iba_ERROR_WHILE_RESETTING_PASSWORD" + ], + "sv": [], + "fr": [], + "bg": [], + "de": [], + "el": [ + "iba_HTTPS_Only" + ], + "th": [ + "iba_HTTPS_Only" + ], + "he": [] +} \ No newline at end of file diff --git a/missing_translations_Initial.json b/missing_translations_Initial.json new file mode 100644 index 0000000..81b5ca2 --- /dev/null +++ b/missing_translations_Initial.json @@ -0,0 +1,31 @@ +{ + "de": [], + "id": [], + "es": [], + "el": [], + "pt": [], + "sl": [], + "tw": [], + "nl": [], + "fr": [], + "da": [], + "hu": [], + "et": [], + "br": [], + "nb": [], + "ja": [ + "initial_FORM_TITLE" + ], + "ru": [], + "ro": [], + "cn": [], + "it": [], + "pl": [], + "th": [], + "tr": [], + "sv": [], + "bg": [], + "he": [ + "initial_FORM_TITLE" + ] +} \ No newline at end of file diff --git a/missing_translations_Localnetworks.json b/missing_translations_Localnetworks.json new file mode 100644 index 0000000..693f472 --- /dev/null +++ b/missing_translations_Localnetworks.json @@ -0,0 +1,100 @@ +{ + "cn": [], + "pl": [ + "ln_NETWORK_ADDRESS", + "ln_REMOVE_TITLE", + "ln_REMOVE_DESC", + "ln_REMOVE_CONFIRM", + "ln_DEFAULT", + "ln_ERROR_CREATING_NETWORK", + "ln_ERROR_DELETING_NETWORK", + "ln_NO_ADDITIONAL_NETWORKS", + "ln_REMOVE_HOSTS_LABEL" + ], + "bg": [], + "th": [ + "ln_SUBNET_MASK" + ], + "sv": [], + "id": [ + "ln_SUBNET_MASK", + "ln_DEFAULT" + ], + "da": [], + "br": [], + "fr": [], + "nb": [], + "sl": [ + "ln_NETWORK_ADDRESS", + "ln_REMOVE_TITLE", + "ln_REMOVE_DESC", + "ln_REMOVE_CONFIRM", + "ln_DEFAULT", + "ln_ERROR_CREATING_NETWORK", + "ln_ERROR_DELETING_NETWORK", + "ln_NO_ADDITIONAL_NETWORKS", + "ln_REMOVE_HOSTS_LABEL" + ], + "nl": [], + "he": [ + "ln_NETWORK_ADDRESS", + "ln_SUBNET_MASK", + "ln_INVALID_SUBNET_MASK", + "ln_REMOVE_TITLE", + "ln_REMOVE_DESC", + "ln_REMOVE_CONFIRM", + "ln_DEFAULT", + "ln_NUMBER_OF_HOSTS", + "ln_ERROR_CREATING_NETWORK", + "ln_ERROR_DELETING_NETWORK", + "ln_NO_ADDITIONAL_NETWORKS", + "ln_REMOVE_HOSTS_LABEL" + ], + "tr": [], + "hu": [], + "es": [], + "ja": [ + "ln_NETWORK_ADDRESS", + "ln_SUBNET_MASK", + "ln_INVALID_SUBNET_MASK", + "ln_REMOVE_TITLE", + "ln_REMOVE_DESC", + "ln_REMOVE_CONFIRM", + "ln_DEFAULT", + "ln_NUMBER_OF_HOSTS", + "ln_ERROR_CREATING_NETWORK", + "ln_ERROR_DELETING_NETWORK", + "ln_NO_ADDITIONAL_NETWORKS", + "ln_REMOVE_HOSTS_LABEL" + ], + "tw": [ + "ln_NETWORK_ADDRESS", + "ln_REMOVE_TITLE", + "ln_REMOVE_DESC", + "ln_REMOVE_CONFIRM", + "ln_ERROR_CREATING_NETWORK", + "ln_REMOVE_HOSTS_LABEL" + ], + "it": [], + "de": [], + "ru": [], + "ro": [ + "ln_NETWORK_ADDRESS", + "ln_SUBNET_MASK", + "ln_INVALID_SUBNET_MASK", + "ln_REMOVE_TITLE", + "ln_REMOVE_DESC", + "ln_REMOVE_CONFIRM", + "ln_DEFAULT", + "ln_NUMBER_OF_HOSTS", + "ln_ERROR_CREATING_NETWORK", + "ln_ERROR_DELETING_NETWORK", + "ln_NO_ADDITIONAL_NETWORKS", + "ln_REMOVE_HOSTS_LABEL" + ], + "el": [], + "pt": [], + "et": [ + "ln_SUBNET_MASK" + ] +} \ No newline at end of file diff --git a/missing_translations_Login.json b/missing_translations_Login.json new file mode 100644 index 0000000..d05ff8d --- /dev/null +++ b/missing_translations_Login.json @@ -0,0 +1,3 @@ +{ + "fr": [] +} \ No newline at end of file diff --git a/missing_translations_Manual.json b/missing_translations_Manual.json new file mode 100644 index 0000000..04f3251 --- /dev/null +++ b/missing_translations_Manual.json @@ -0,0 +1,29 @@ +{ + "fr": [ + "Documentation" + ], + "nb": [], + "el": [], + "et": [], + "es": [], + "tr": [], + "de": [], + "id": [], + "th": [], + "br": [], + "cn": [], + "he": [], + "pl": [], + "bg": [], + "sl": [], + "ro": [], + "pt": [], + "sv": [], + "ja": [], + "hu": [], + "it": [], + "tw": [], + "nl": [], + "da": [], + "ru": [] +} \ No newline at end of file diff --git a/missing_translations_Portforwarding.json b/missing_translations_Portforwarding.json new file mode 100644 index 0000000..9ba47fe --- /dev/null +++ b/missing_translations_Portforwarding.json @@ -0,0 +1,125 @@ +{ + "es": [], + "pl": [ + "pf_FORM_TITLE", + "pf_CREATE_RULE", + "pf_NO_FORWARDS", + "pf_LABEL_SOURCE_PORT", + "pf_LABEL_DESTINATION_PORT", + "pf_LABEL_DESTINATION_HOST", + "pf_SUCCESS", + "pf_ERR_NO_MASQ_RECORD", + "pf_ERR_UNSUPPORTED_MODE", + "pf_ERR_CANNOT_REMOVE_NORULE", + "pf_ERR_NONZERO_RETURN_EVENT", + "pf_ERR_BADPORT", + "pf_ERR_DUPRULE" + ], + "nl": [ + "pf_LABEL_PROTOCOL" + ], + "hu": [], + "th": [], + "he": [ + "pf_FORM_TITLE", + "pf_CREATE_RULE", + "pf_NO_FORWARDS", + "pf_LABEL_SOURCE_PORT", + "pf_LABEL_PROTOCOL", + "pf_LABEL_DESTINATION_PORT", + "pf_LABEL_DESTINATION_HOST", + "pf_LABEL_RULE_COMMENT", + "pf_LABEL_ALLOW_HOSTS", + "pf_SUCCESS", + "pf_RULE_COMMENT", + "pf_ALLOW_HOSTS", + "pf_ERR_NO_MASQ_RECORD", + "pf_ERR_UNSUPPORTED_MODE", + "pf_ERR_CANNOT_REMOVE_NORULE", + "pf_ERR_NONZERO_RETURN_EVENT", + "pf_ERR_BADPORT", + "pf_ERR_DUPRULE" + ], + "pt": [], + "tw": [ + "pf_FORM_TITLE", + "pf_CREATE_RULE", + "pf_NO_FORWARDS", + "pf_LABEL_SOURCE_PORT", + "pf_LABEL_DESTINATION_PORT", + "pf_LABEL_DESTINATION_HOST", + "pf_LABEL_RULE_COMMENT", + "pf_LABEL_ALLOW_HOSTS", + "pf_SUCCESS", + "pf_RULE_COMMENT", + "pf_ALLOW_HOSTS", + "pf_ERR_NO_MASQ_RECORD", + "pf_ERR_UNSUPPORTED_MODE", + "pf_ERR_CANNOT_REMOVE_NORULE", + "pf_ERR_NONZERO_RETURN_EVENT", + "pf_ERR_BADPORT", + "pf_ERR_DUPRULE" + ], + "da": [], + "de": [], + "sl": [ + "pf_CREATE_RULE", + "pf_LABEL_RULE_COMMENT", + "pf_RULE_COMMENT" + ], + "ru": [], + "el": [], + "tr": [], + "br": [], + "ja": [ + "pf_FORM_TITLE", + "pf_CREATE_RULE", + "pf_NO_FORWARDS", + "pf_LABEL_SOURCE_PORT", + "pf_LABEL_DESTINATION_PORT", + "pf_LABEL_DESTINATION_HOST", + "pf_SUCCESS", + "pf_ERR_NO_MASQ_RECORD", + "pf_ERR_UNSUPPORTED_MODE", + "pf_ERR_CANNOT_REMOVE_NORULE", + "pf_ERR_NONZERO_RETURN_EVENT", + "pf_ERR_BADPORT", + "pf_ERR_DUPRULE" + ], + "cn": [], + "it": [ + "Port forwarding" + ], + "ro": [ + "pf_FORM_TITLE", + "pf_CREATE_RULE", + "pf_NO_FORWARDS", + "pf_LABEL_SOURCE_PORT", + "pf_LABEL_PROTOCOL", + "pf_LABEL_DESTINATION_PORT", + "pf_LABEL_DESTINATION_HOST", + "pf_LABEL_RULE_COMMENT", + "pf_SUCCESS", + "pf_RULE_COMMENT", + "pf_ERR_NO_MASQ_RECORD", + "pf_ERR_UNSUPPORTED_MODE", + "pf_ERR_CANNOT_REMOVE_NORULE", + "pf_ERR_NONZERO_RETURN_EVENT", + "pf_ERR_BADPORT", + "pf_ERR_DUPRULE" + ], + "fr": [], + "bg": [], + "sv": [], + "et": [ + "pf_LABEL_SOURCE_PORT", + "pf_ERR_NO_MASQ_RECORD", + "pf_ERR_UNSUPPORTED_MODE", + "pf_ERR_CANNOT_REMOVE_NORULE", + "pf_ERR_NONZERO_RETURN_EVENT", + "pf_ERR_BADPORT", + "pf_ERR_DUPRULE" + ], + "id": [], + "nb": [] +} \ No newline at end of file diff --git a/missing_translations_Printers.json b/missing_translations_Printers.json new file mode 100644 index 0000000..6f1b904 --- /dev/null +++ b/missing_translations_Printers.json @@ -0,0 +1,149 @@ +{ + "ro": [ + "prt_FORM_TITLE", + "prt_CURRENT_LIST", + "prt_LOCAL_PRINTER_0", + "prt_LOCAL_PRINTER_1", + "prt_LOCAL_PRINTER_2", + "prt_NET_PRINTER", + "prt_FIRST_USB_PRINTER", + "prt_SECOND_USB_PRINTER", + "prt_SPOOL_FILE_WARNING" + ], + "es": [], + "de": [], + "pt": [], + "nl": [ + "Printers" + ], + "sl": [], + "cn": [], + "da": [], + "tr": [], + "it": [], + "hu": [], + "he": [ + "prt_FORM_TITLE", + "prt_NO_PRINTERS", + "prt_CURRENT_LIST", + "prt_REMOTE_ADDRESS", + "prt_REMOTE_NAME", + "prt_CREATE_NEW_PRINTER", + "prt_PRINTER_NAME", + "prt_LOCAL_PRINTER_0", + "prt_LOCAL_PRINTER_1", + "prt_LOCAL_PRINTER_2", + "prt_NET_PRINTER", + "prt_FIRST_USB_PRINTER", + "prt_SECOND_USB_PRINTER", + "prt_ERR_INVALID_ADDRESS", + "prt_ERR_INVALID_REMOTE_NAME", + "prt_ERR_CREATING", + "prt_CREATE_NETWORK_PRINTER", + "prt_ERR_OPENING_DB", + "prt_CREATE_NETWORK_DESC", + "prt_HOSTNAME_OR_IP", + "prt_REMOVE_PRINTER", + "prt_SPOOL_FILE_WARNING", + "prt_ARE_YOU_SURE", + "prt_ERR_DELETING" + ], + "fr": [], + "id": [], + "br": [], + "tw": [ + "prt_FORM_TITLE", + "prt_NO_PRINTERS", + "prt_CURRENT_LIST", + "prt_REMOTE_ADDRESS", + "prt_REMOTE_NAME", + "prt_CREATE_NEW_PRINTER", + "prt_PRINTER_NAME", + "prt_LOCAL_PRINTER_0", + "prt_LOCAL_PRINTER_1", + "prt_LOCAL_PRINTER_2", + "prt_NET_PRINTER", + "prt_FIRST_USB_PRINTER", + "prt_SECOND_USB_PRINTER", + "prt_ERR_INVALID_ADDRESS", + "prt_ERR_INVALID_REMOTE_NAME", + "prt_ERR_CREATING", + "prt_CREATE_NETWORK_PRINTER", + "prt_ERR_OPENING_DB", + "prt_CREATE_NETWORK_DESC", + "prt_HOSTNAME_OR_IP", + "prt_REMOVE_PRINTER", + "prt_SPOOL_FILE_WARNING", + "prt_ARE_YOU_SURE", + "prt_ERR_DELETING" + ], + "ja": [ + "prt_FORM_TITLE", + "prt_NO_PRINTERS", + "prt_CURRENT_LIST", + "prt_REMOTE_ADDRESS", + "prt_REMOTE_NAME", + "prt_CREATE_NEW_PRINTER", + "prt_PRINTER_NAME", + "prt_LOCAL_PRINTER_0", + "prt_LOCAL_PRINTER_1", + "prt_LOCAL_PRINTER_2", + "prt_NET_PRINTER", + "prt_FIRST_USB_PRINTER", + "prt_SECOND_USB_PRINTER", + "prt_ERR_INVALID_ADDRESS", + "prt_ERR_INVALID_REMOTE_NAME", + "prt_ERR_CREATING", + "prt_CREATE_NETWORK_PRINTER", + "prt_ERR_OPENING_DB", + "prt_CREATE_NETWORK_DESC", + "prt_HOSTNAME_OR_IP", + "prt_REMOVE_PRINTER", + "prt_SPOOL_FILE_WARNING", + "prt_ARE_YOU_SURE", + "prt_ERR_DELETING", + "prt_MUST_BE_VALID_HOSTNAME_OR_IP" + ], + "th": [ + "prt_REMOTE_ADDRESS", + "prt_REMOTE_NAME" + ], + "ru": [], + "et": [ + "prt_LOCAL_PRINTER_1", + "prt_LOCAL_PRINTER_2", + "prt_FIRST_USB_PRINTER", + "prt_SECOND_USB_PRINTER" + ], + "bg": [], + "sv": [], + "nb": [], + "el": [], + "pl": [ + "prt_FORM_TITLE", + "prt_NO_PRINTERS", + "prt_CURRENT_LIST", + "prt_REMOTE_ADDRESS", + "prt_REMOTE_NAME", + "prt_CREATE_NEW_PRINTER", + "prt_PRINTER_NAME", + "prt_LOCAL_PRINTER_0", + "prt_LOCAL_PRINTER_1", + "prt_LOCAL_PRINTER_2", + "prt_NET_PRINTER", + "prt_FIRST_USB_PRINTER", + "prt_SECOND_USB_PRINTER", + "prt_ERR_INVALID_ADDRESS", + "prt_ERR_INVALID_REMOTE_NAME", + "prt_ERR_CREATING", + "prt_CREATE_NETWORK_PRINTER", + "prt_ERR_OPENING_DB", + "prt_CREATE_NETWORK_DESC", + "prt_HOSTNAME_OR_IP", + "prt_REMOVE_PRINTER", + "prt_SPOOL_FILE_WARNING", + "prt_ARE_YOU_SURE", + "prt_ERR_DELETING", + "prt_MUST_BE_VALID_HOSTNAME_OR_IP" + ] +} \ No newline at end of file diff --git a/missing_translations_Proxy.json b/missing_translations_Proxy.json new file mode 100644 index 0000000..b33ef5d --- /dev/null +++ b/missing_translations_Proxy.json @@ -0,0 +1,53 @@ +{ + "pt": [], + "it": [], + "de": [], + "et": [], + "ja": [ + "prx_HTTP_PROXY_STATUS_LABEL", + "prx_SMTP_PROXY_STATUS_LABEL", + "prx_ERR_PROXY_UPDATE_FAILED", + "prx_ERR_NO_SQUID_REC", + "prx_SUCCESS" + ], + "th": [], + "fr": [], + "el": [ + "prx_BLOCKED" + ], + "ro": [], + "ru": [], + "cn": [], + "tw": [ + "prx_HTTP_PROXY_STATUS_LABEL", + "prx_ERR_NO_SQUID_REC", + "prx_SUCCESS" + ], + "sl": [ + "prx_BLOCKED" + ], + "nb": [ + "prx_HTTP_PROXY_STATUS_LABEL", + "prx_SMTP_PROXY_STATUS_LABEL" + ], + "es": [], + "nl": [], + "br": [], + "hu": [], + "bg": [], + "tr": [], + "id": [ + "prx_BLOCKED" + ], + "sv": [], + "da": [], + "pl": [], + "he": [ + "prx_HTTP_PROXY_STATUS_LABEL", + "prx_SMTP_PROXY_STATUS_LABEL", + "prx_ERR_PROXY_UPDATE_FAILED", + "prx_ERR_NO_SQUID_REC", + "prx_SUCCESS", + "prx_BLOCKED" + ] +} \ No newline at end of file diff --git a/missing_translations_Pseudonyms.json b/missing_translations_Pseudonyms.json new file mode 100644 index 0000000..ef368ff --- /dev/null +++ b/missing_translations_Pseudonyms.json @@ -0,0 +1,154 @@ +{ + "he": [ + "pse_NO_PSEUDONYMS", + "pse_REMOVE_PSEUDONYM", + "pse_FORM_TITLE", + "pse_LOCAL_ONLY", + "pse_SELECT_ACCOUNT", + "pse_SELECT_INTERNAL", + "pse_CLICK_TO_CREATE", + "pse_PSEUDONYM", + "pse_USER_OR_GROUP", + "pse_TITLE_CREATE", + "pse_MODIFY_PSEUDONYM", + "pse_PSEUDONYM_NAME", + "pse_NAME_IN_USE", + "pse_NOT_A_PSEUDONYM", + "pse_PSEUDONYM_INVALID_DOMAIN", + "pse_PSEUDONYM_INVALID_NOACCT", + "pse_PSEUDONYM_INVALID_SAMEACCT", + "pse_CREATE_SUCCEEDED", + "pse_MODIFY_SUCCEEDED", + "pse_REMOVE_SUCCEEDED", + "pse_EVERYONE" + ], + "es": [], + "cn": [], + "fr": [], + "ja": [ + "pse_NO_PSEUDONYMS", + "pse_REMOVE_PSEUDONYM", + "pse_FORM_TITLE", + "pse_LOCAL_ONLY", + "pse_SELECT_ACCOUNT", + "pse_SELECT_INTERNAL", + "pse_CLICK_TO_CREATE", + "pse_PSEUDONYM", + "pse_USER_OR_GROUP", + "pse_TITLE_CREATE", + "pse_MODIFY_PSEUDONYM", + "pse_PSEUDONYM_NAME", + "pse_NAME_IN_USE", + "pse_NOT_A_PSEUDONYM", + "pse_PSEUDONYM_INVALID_DOMAIN", + "pse_PSEUDONYM_INVALID_NOACCT", + "pse_PSEUDONYM_INVALID_SAMEACCT", + "pse_CREATE_SUCCEEDED", + "pse_MODIFY_SUCCEEDED", + "pse_REMOVE_SUCCEEDED", + "pse_EVERYONE", + "Pseudonyms" + ], + "tw": [ + "pse_NO_PSEUDONYMS", + "pse_REMOVE_PSEUDONYM", + "pse_FORM_TITLE", + "pse_LOCAL_ONLY", + "pse_SELECT_ACCOUNT", + "pse_SELECT_INTERNAL", + "pse_CLICK_TO_CREATE", + "pse_PSEUDONYM", + "pse_USER_OR_GROUP", + "pse_TITLE_CREATE", + "pse_MODIFY_PSEUDONYM", + "pse_PSEUDONYM_NAME", + "pse_NAME_IN_USE", + "pse_NOT_A_PSEUDONYM", + "pse_PSEUDONYM_INVALID_DOMAIN", + "pse_PSEUDONYM_INVALID_NOACCT", + "pse_PSEUDONYM_INVALID_SAMEACCT", + "pse_CREATE_SUCCEEDED", + "pse_MODIFY_SUCCEEDED", + "pse_REMOVE_SUCCEEDED" + ], + "id": [ + "pse_PSEUDONYM" + ], + "tr": [], + "pl": [ + "pse_NO_PSEUDONYMS", + "pse_REMOVE_PSEUDONYM", + "pse_FORM_TITLE", + "pse_LOCAL_ONLY", + "pse_SELECT_ACCOUNT", + "pse_SELECT_INTERNAL", + "pse_CLICK_TO_CREATE", + "pse_PSEUDONYM", + "pse_USER_OR_GROUP", + "pse_TITLE_CREATE", + "pse_MODIFY_PSEUDONYM", + "pse_PSEUDONYM_NAME", + "pse_NAME_IN_USE", + "pse_NOT_A_PSEUDONYM", + "pse_PSEUDONYM_INVALID_DOMAIN", + "pse_PSEUDONYM_INVALID_NOACCT", + "pse_PSEUDONYM_INVALID_SAMEACCT", + "pse_CREATE_SUCCEEDED", + "pse_MODIFY_SUCCEEDED", + "pse_REMOVE_SUCCEEDED", + "pse_EVERYONE" + ], + "nb": [ + "pse_PSEUDONYM" + ], + "el": [], + "br": [], + "nl": [], + "pt": [], + "hu": [], + "da": [ + "pse_PSEUDONYM" + ], + "et": [ + "pse_LOCAL_ONLY", + "pse_SELECT_INTERNAL", + "pse_EVERYONE" + ], + "sv": [], + "it": [], + "ro": [ + "pse_NO_PSEUDONYMS", + "pse_REMOVE_PSEUDONYM", + "pse_FORM_TITLE", + "pse_LOCAL_ONLY", + "pse_SELECT_ACCOUNT", + "pse_SELECT_INTERNAL", + "pse_CLICK_TO_CREATE", + "pse_PSEUDONYM", + "pse_USER_OR_GROUP", + "pse_TITLE_CREATE", + "pse_MODIFY_PSEUDONYM", + "pse_PSEUDONYM_NAME", + "pse_NAME_IN_USE", + "pse_NOT_A_PSEUDONYM", + "pse_PSEUDONYM_INVALID_DOMAIN", + "pse_PSEUDONYM_INVALID_NOACCT", + "pse_PSEUDONYM_INVALID_SAMEACCT", + "pse_CREATE_SUCCEEDED", + "pse_MODIFY_SUCCEEDED", + "pse_REMOVE_SUCCEEDED", + "pse_EVERYONE" + ], + "bg": [], + "de": [ + "pse_PSEUDONYM" + ], + "sl": [ + "pse_PSEUDONYM_INVALID_DOMAIN", + "pse_PSEUDONYM_INVALID_NOACCT", + "pse_PSEUDONYM_INVALID_SAMEACCT", + "pse_EVERYONE" + ], + "th": [], + "ru": [] +} \ No newline at end of file diff --git a/missing_translations_Qmailanalog.json b/missing_translations_Qmailanalog.json new file mode 100644 index 0000000..4ad4b2c --- /dev/null +++ b/missing_translations_Qmailanalog.json @@ -0,0 +1,66 @@ +{ + "tw": [], + "ru": [], + "pt": [], + "de": [], + "sl": [ + "qma_SUMMARIZE_QUEUE" + ], + "pl": [ + "qma_RECIP_ORDERED", + "qma_SENDER_STATS", + "qma_SENDMAIL_STYLE", + "qma_REASONS_SUCCESS", + "qma_SENDER_UIDS", + "qma_END_OF_REPORT" + ], + "el": [], + "fr": [], + "it": [], + "th": [], + "he": [ + "qma_SUCCESSFUL_DELIVERY_DELAY" + ], + "ro": [], + "nl": [], + "cn": [], + "nb": [], + "hu": [], + "id": [], + "da": [], + "et": [ + "qma_LIST_OUTGOING", + "qma_SUCCESSFUL_DELIVERY_DELAY", + "qma_REASONS_DEFERRAL", + "qma_REASONS_FAILURE", + "qma_RECIP_STATS", + "qma_RECIP_HOSTS", + "qma_RECIP_ORDERED", + "qma_SENDMAIL_STYLE", + "qma_REASONS_SUCCESS" + ], + "bg": [], + "sv": [], + "es": [], + "tr": [], + "br": [], + "ja": [ + "qma_FORM_TITLE", + "qma_REPORT_TYPE", + "qma_GENERATE_REPORT", + "qma_LIST_OUTGOING", + "qma_SUMMARIZE_QUEUE", + "qma_SUCCESSFUL_DELIVERY_DELAY", + "qma_REASONS_DEFERRAL", + "qma_REASONS_FAILURE", + "qma_BASIC_STATS", + "qma_RECIP_STATS", + "qma_RECIP_HOSTS", + "qma_RECIP_ORDERED", + "qma_SENDER_STATS", + "qma_SENDMAIL_STYLE", + "qma_REASONS_SUCCESS", + "qma_SENDER_UIDS", + "qma_END_OF_REPORT" + ] +} \ No newline at end of file diff --git a/missing_translations_Quota.json b/missing_translations_Quota.json new file mode 100644 index 0000000..8c6b0f6 --- /dev/null +++ b/missing_translations_Quota.json @@ -0,0 +1,87 @@ +{ + "pt": [ + "quo_MEGABYTES" + ], + "de": [], + "th": [], + "pl": [ + "quo_FORM_TITLE", + "quo_UNABLE_TO_OPEN_ACCOUNTS", + "quo_CURRENT_USAGE_AND_SETTINGS", + "quo_ABS_LIMIT_MB", + "quo_CURRENT_USAGE", + "quo_MODIFY_USER_TITLE", + "quo_FILES", + "quo_MEGABYTES", + "quo_SOFT_VAL_MUST_BE_NUMBER", + "quo_HARD_VAL_MUST_BE_NUMBER", + "quo_ERR_MODIFYING" + ], + "bg": [], + "et": [], + "cn": [], + "br": [ + "quo_MEGABYTES" + ], + "el": [ + "quo_MEGABYTES" + ], + "sl": [], + "tw": [ + "quo_MODIFY_USER_TITLE" + ], + "ru": [], + "he": [ + "quo_FORM_TITLE", + "quo_UNABLE_TO_OPEN_ACCOUNTS", + "quo_CURRENT_USAGE_AND_SETTINGS", + "quo_ABS_LIMIT_MB", + "quo_CURRENT_USAGE", + "quo_MODIFY_USER_TITLE", + "quo_FILES", + "quo_MEGABYTES", + "quo_SOFT_VAL_MUST_BE_NUMBER", + "quo_HARD_VAL_MUST_BE_NUMBER", + "quo_ERR_MODIFYING" + ], + "ro": [], + "it": [], + "id": [], + "ja": [ + "quo_FORM_TITLE", + "quo_UNABLE_TO_OPEN_ACCOUNTS", + "quo_CURRENT_USAGE_AND_SETTINGS", + "quo_LIMIT_WITH_GRACE", + "quo_LIMIT_WITH_GRACE_MB", + "quo_ABS_LIMIT", + "quo_ABS_LIMIT_MB", + "quo_CURRENT_USAGE", + "quo_MODIFY_USER_TITLE", + "quo_FILES", + "quo_MEGABYTES", + "quo_SOFT_VAL_MUST_BE_NUMBER", + "quo_HARD_VAL_MUST_BE_NUMBER", + "quo_ERR_MODIFYING", + "Quotas" + ], + "tr": [], + "nb": [ + "quo_MEGABYTES" + ], + "es": [ + "quo_MEGABYTES" + ], + "da": [ + "quo_MEGABYTES" + ], + "nl": [ + "quo_MEGABYTES" + ], + "hu": [], + "sv": [ + "quo_MEGABYTES" + ], + "fr": [ + "Quotas" + ] +} \ No newline at end of file diff --git a/missing_translations_Reboot.json b/missing_translations_Reboot.json new file mode 100644 index 0000000..d4d219f --- /dev/null +++ b/missing_translations_Reboot.json @@ -0,0 +1,38 @@ +{ + "sv": [], + "ru": [], + "pt": [], + "da": [], + "nl": [], + "de": [], + "pl": [], + "fr": [], + "sl": [ + "rbo_DESC_RECONFIGURE" + ], + "he": [], + "bg": [], + "el": [], + "br": [], + "id": [ + "rbo_REBOOT" + ], + "it": [], + "cn": [], + "tw": [], + "nb": [], + "ja": [ + "rbo_FORM_TITLE", + "rbo_REBOOT_SUCCEEDED", + "rbo_DESC_REBOOT", + "rbo_RECONFIGURE_SUCCEEDED", + "rbo_DESC_RECONFIGURE", + "rbo_LABEL_REBOOT" + ], + "hu": [], + "ro": [], + "th": [], + "et": [], + "tr": [], + "es": [] +} \ No newline at end of file diff --git a/missing_translations_Remoteaccess.json b/missing_translations_Remoteaccess.json new file mode 100644 index 0000000..f1f1f3c --- /dev/null +++ b/missing_translations_Remoteaccess.json @@ -0,0 +1,184 @@ +{ + "fr": [ + "rma_VALIDFROM_TITLE" + ], + "ja": [ + "rma_FORM_TITLE", + "rma_SUCCESS", + "rma_NO_ACCESS", + "rma_PASSWORD_LOGIN_PRIVATE", + "rma_PASSWORD_LOGIN_PUBLIC", + "rma_LABEL_TELNET_ACCESS", + "rma_LABEL_FTP_ACCESS", + "rma_LABEL_FTP_LOGIN", + "rma_LABEL_PPTP", + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE", + "rma_LABEL_SSH_PORT", + "rma_LABEL_SSH", + "rma_LABEL_SSH_ADMIN", + "rma_LABEL_SSH_PASSWORD_ACCESS", + "rma_VALUE_ZERO_OR_POSITIVE", + "rma_REMOTE_MANAGEMENT", + "rma_SUBNET_MASK", + "rma_NUM_OF_HOSTS", + "rma_NO_ENTRIES_YET", + "rma_INVALID_SUBNET_MASK", + "rma_ERR_NO_RECORD", + "rma_LABEL_SERIAL_CONSOLE_ACCESS", + "rma_PORT1_ENABLED", + "rma_PORT2_ENABLED", + "rma_LABEL_PPTP_ACCESS", + "rma_LABEL_IPSECRW_SESS", + "rma_LABEL_IPSECRW_RESET" + ], + "sl": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE", + "rma_LABEL_SSH_PORT" + ], + "he": [ + "rma_FORM_TITLE", + "rma_SUCCESS", + "rma_NO_ACCESS", + "rma_PASSWORD_LOGIN_PRIVATE", + "rma_PASSWORD_LOGIN_PUBLIC", + "rma_LABEL_TELNET_ACCESS", + "rma_LABEL_FTP_ACCESS", + "rma_LABEL_FTP_LOGIN", + "rma_LABEL_PPTP", + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE", + "rma_LABEL_SSH_PORT", + "rma_LABEL_SSH", + "rma_LABEL_SSH_ADMIN", + "rma_LABEL_SSH_PASSWORD_ACCESS", + "rma_VALUE_ZERO_OR_POSITIVE", + "rma_REMOTE_MANAGEMENT", + "rma_SUBNET_MASK", + "rma_NUM_OF_HOSTS", + "rma_NO_ENTRIES_YET", + "rma_INVALID_SUBNET_MASK", + "rma_ERR_NO_RECORD", + "rma_LABEL_SERIAL_CONSOLE_ACCESS", + "rma_PORT1_ENABLED", + "rma_PORT2_ENABLED", + "rma_LABEL_PPTP_ACCESS", + "rma_LABEL_IPSECRW_SESS", + "rma_LABEL_IPSECRW_RESET" + ], + "tr": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE" + ], + "th": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE", + "rma_REMOTE_MANAGEMENT", + "rma_SUBNET_MASK", + "rma_LABEL_SERIAL_CONSOLE_ACCESS" + ], + "br": [], + "cn": [], + "ru": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE" + ], + "et": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE", + "rma_SUBNET_MASK", + "rma_LABEL_SERIAL_CONSOLE_ACCESS", + "rma_PORT1_ENABLED", + "rma_PORT2_ENABLED", + "rma_LABEL_IPSECRW_RESET" + ], + "pt": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE" + ], + "pl": [ + "rma_FORM_TITLE", + "rma_SUCCESS", + "rma_NO_ACCESS", + "rma_PASSWORD_LOGIN_PRIVATE", + "rma_PASSWORD_LOGIN_PUBLIC", + "rma_LABEL_TELNET_ACCESS", + "rma_LABEL_FTP_ACCESS", + "rma_LABEL_FTP_LOGIN", + "rma_LABEL_PPTP", + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE", + "rma_LABEL_SSH_PORT", + "rma_LABEL_SSH", + "rma_LABEL_SSH_ADMIN", + "rma_LABEL_SSH_PASSWORD_ACCESS", + "rma_ERR_NO_RECORD", + "rma_LABEL_SERIAL_CONSOLE_ACCESS", + "rma_PORT1_ENABLED", + "rma_PORT2_ENABLED", + "rma_LABEL_PPTP_ACCESS", + "rma_LABEL_IPSECRW_SESS", + "rma_LABEL_IPSECRW_RESET" + ], + "da": [], + "sv": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE" + ], + "tw": [ + "rma_FORM_TITLE", + "rma_NO_ACCESS", + "rma_PASSWORD_LOGIN_PRIVATE", + "rma_PASSWORD_LOGIN_PUBLIC", + "rma_LABEL_TELNET_ACCESS", + "rma_LABEL_FTP_ACCESS", + "rma_LABEL_FTP_LOGIN", + "rma_LABEL_PPTP", + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE", + "rma_LABEL_SSH_PORT", + "rma_LABEL_SSH", + "rma_LABEL_SSH_ADMIN", + "rma_LABEL_SSH_PASSWORD_ACCESS", + "rma_LABEL_PPTP_ACCESS", + "rma_LABEL_IPSECRW_SESS", + "rma_LABEL_IPSECRW_RESET" + ], + "el": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE" + ], + "it": [], + "id": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE", + "rma_SUBNET_MASK" + ], + "nb": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE" + ], + "nl": [], + "de": [], + "bg": [], + "hu": [], + "es": [ + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE" + ], + "ro": [ + "rma_FORM_TITLE", + "rma_SUCCESS", + "rma_NO_ACCESS", + "rma_PASSWORD_LOGIN_PRIVATE", + "rma_PASSWORD_LOGIN_PUBLIC", + "rma_LABEL_TELNET_ACCESS", + "rma_LABEL_FTP_ACCESS", + "rma_LABEL_FTP_LOGIN", + "rma_LABEL_PPTP", + "rma_NUMBER_OF_PPTP_CLIENTS_MUST_BE_LESSER_THAN_NUMBER_OF_IP_IN_DHCP_RANGE", + "rma_LABEL_SSH_PORT", + "rma_LABEL_SSH", + "rma_LABEL_SSH_ADMIN", + "rma_LABEL_SSH_PASSWORD_ACCESS", + "rma_VALUE_ZERO_OR_POSITIVE", + "rma_REMOTE_MANAGEMENT", + "rma_SUBNET_MASK", + "rma_NUM_OF_HOSTS", + "rma_NO_ENTRIES_YET", + "rma_INVALID_SUBNET_MASK", + "rma_ERR_NO_RECORD", + "rma_LABEL_SERIAL_CONSOLE_ACCESS", + "rma_PORT1_ENABLED", + "rma_PORT2_ENABLED", + "rma_LABEL_PPTP_ACCESS", + "rma_LABEL_IPSECRW_SESS", + "rma_LABEL_IPSECRW_RESET" + ] +} \ No newline at end of file diff --git a/missing_translations_Review.json b/missing_translations_Review.json new file mode 100644 index 0000000..60d765e --- /dev/null +++ b/missing_translations_Review.json @@ -0,0 +1,125 @@ +{ + "fr": [], + "th": [], + "ru": [], + "et": [ + "rvw_SERVER_MODE", + "rvw_DHCP_SERVER", + "rvw_DNS_SERVER", + "rvw_PROXY_SERVER", + "rvw_FTP_SERVER", + "rvw_INTERNET_VISIBLE_ADDRESS" + ], + "cn": [], + "pt": [ + "rvw_GATEWAY", + "rvw_HOSTS" + ], + "it": [ + "rvw_GATEWAY" + ], + "br": [ + "rvw_GATEWAY", + "rvw_HOSTS" + ], + "ro": [], + "hu": [], + "nl": [ + "rvw_GATEWAY", + "rvw_DHCP_SERVER", + "rvw_DNS_SERVER", + "rvw_PROXY_SERVER", + "rvw_FTP_SERVER", + "rvw_HOSTS" + ], + "tr": [], + "tw": [], + "el": [], + "ja": [ + "Review configuration", + "rvw_NETWORKING_PARAMS", + "rvw_SERVER_MODE", + "rvw_LOCAL_IP_ADDRESS_SUBNET_MASK", + "rvw_EXTERNAL_IP_ADDRESS_SUBNET_MASK", + "rvw_GATEWAY", + "rvw_ADDITIONAL_LOCAL_NETWORKS", + "rvw_DHCP_SERVER", + "rvw_BEGINNING_OF_DHCP_ADDRESS_RANGE", + "rvw_END_OF_DHCP_ADDRESS_RANGE", + "rvw_SERVER_NAMES", + "rvw_DNS_SERVER", + "rvw_WEB_SERVER", + "rvw_PROXY_SERVER", + "rvw_FTP_SERVER", + "rvw_SMTP_POP_AND_IMAP_MAIL_SERVERS", + "rvw_HOSTS", + "rvw_DOMAIN_INFORMATION", + "rvw_PRIMARY_DOMAIN", + "rvw_VIRTUAL_DOMAINS", + "rvw_PRIMARY_WEB_SITE", + "rvw_EMAIL_ADDRESSES", + "rvw_EMAIL_USERACCOUNT", + "rvw_EMAIL_FIRSTNAME", + "rvw_EMAIL_LASTNAME", + "rvw_NO_VIRTUAL_DOMAINS", + "rvw_NO_NETWORKS", + "rvw_INTERNET_VISIBLE_ADDRESS" + ], + "es": [ + "rvw_HOSTS" + ], + "pl": [], + "sv": [ + "rvw_GATEWAY" + ], + "bg": [ + "rvw_GATEWAY" + ], + "he": [ + "rvw_NETWORKING_PARAMS", + "rvw_SERVER_MODE", + "rvw_LOCAL_IP_ADDRESS_SUBNET_MASK", + "rvw_EXTERNAL_IP_ADDRESS_SUBNET_MASK", + "rvw_GATEWAY", + "rvw_ADDITIONAL_LOCAL_NETWORKS", + "rvw_DHCP_SERVER", + "rvw_BEGINNING_OF_DHCP_ADDRESS_RANGE", + "rvw_END_OF_DHCP_ADDRESS_RANGE", + "rvw_SERVER_NAMES", + "rvw_DNS_SERVER", + "rvw_WEB_SERVER", + "rvw_PROXY_SERVER", + "rvw_FTP_SERVER", + "rvw_SMTP_POP_AND_IMAP_MAIL_SERVERS", + "rvw_HOSTS", + "rvw_DOMAIN_INFORMATION", + "rvw_PRIMARY_DOMAIN", + "rvw_VIRTUAL_DOMAINS", + "rvw_PRIMARY_WEB_SITE", + "rvw_EMAIL_ADDRESSES", + "rvw_EMAIL_USERACCOUNT", + "rvw_EMAIL_FIRSTNAME", + "rvw_EMAIL_LASTNAME", + "rvw_NO_VIRTUAL_DOMAINS", + "rvw_NO_NETWORKS", + "rvw_INTERNET_VISIBLE_ADDRESS" + ], + "sl": [], + "da": [ + "rvw_GATEWAY" + ], + "nb": [ + "rvw_GATEWAY", + "rvw_DHCP_SERVER", + "rvw_DNS_SERVER" + ], + "id": [ + "rvw_GATEWAY", + "rvw_PROXY_SERVER", + "rvw_HOSTS" + ], + "de": [ + "rvw_GATEWAY", + "rvw_HOSTS" + ] +} \ No newline at end of file diff --git a/missing_translations_Support.json b/missing_translations_Support.json new file mode 100644 index 0000000..23d4851 --- /dev/null +++ b/missing_translations_Support.json @@ -0,0 +1,27 @@ +{ + "he": [], + "sl": [], + "et": [], + "nb": [], + "sv": [], + "bg": [], + "es": [], + "pt": [], + "cn": [], + "tw": [], + "el": [], + "pl": [], + "tr": [], + "fr": [], + "ja": [], + "ro": [], + "th": [], + "da": [], + "it": [], + "nl": [], + "ru": [], + "id": [], + "hu": [], + "de": [], + "br": [] +} \ No newline at end of file diff --git a/missing_translations_Swttheme.json b/missing_translations_Swttheme.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/missing_translations_Swttheme.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/missing_translations_Useraccounts.json b/missing_translations_Useraccounts.json new file mode 100644 index 0000000..e8a8e53 --- /dev/null +++ b/missing_translations_Useraccounts.json @@ -0,0 +1,167 @@ +{ + "ro": [ + "usr_FORM_TITLE", + "usr_P2_TITLE", + "usr_MODIFY_ADMIN_TITLE", + "usr_ACCOUNT_NAME", + "usr_DEPARTMENT", + "usr_COMPANY", + "usr_STREET_ADDRESS", + "usr_CITY", + "usr_PHONE_NUMBER", + "usr_EMAIL_DELIVERY", + "usr_FORWARD_EMAIL", + "usr_FORWARDING_ADDRESS", + "usr_GROUP_MEMBERSHIPS", + "usr_RESET_DESC2", + "usr_ERR_OCCURRED_MODIFYING_PASSWORD", + "usr_LOCK_ACCOUNT", + "usr_LOCK_ACCOUNT_TITLE", + "usr_REMOVE_ACCOUNT_TITLE", + "usr_LOCK", + "usr_NO_USER_ACCOUNTS", + "usr_ERR_OCCURRED_CREATING", + "usr_CANNOT_CONTAIN_WHITESPACE", + "usr_UNACCEPTABLE_CHARS", + "usr_MEMBER", + "usr_VPN_CLIENT_ACCESS", + "usr_SYSTEM_PASSWORD_FORM_TITLE", + "usr_SYSTEM_PASSWORD_UNPRINTABLES_IN_PASS", + "usr_SYSTEM_PASSWORD_VERIFY_ERROR", + "usr_SYSTEM_PASSWORD_AUTH_ERROR", + "usr_SYSTEM_PASSWORD_CHANGED", + "usr_CURRENT_SYSTEM_PASSWORD", + "usr_NEW_SYSTEM_PASSWORD", + "usr_NEW_SYSTEM_PASSWORD_VERIFY", + "usr_LABEL_IPSECRW_DOWNLOAD", + "usr_ERR_OCCURRED_DELETING" + ], + "cn": [], + "ja": [ + "usr_FORM_TITLE", + "usr_P2_TITLE", + "usr_MODIFY_ADMIN_TITLE", + "usr_ACCOUNT_NAME", + "usr_DEPARTMENT", + "usr_COMPANY", + "usr_STREET_ADDRESS", + "usr_CITY", + "usr_PHONE_NUMBER", + "usr_EMAIL_DELIVERY", + "usr_DELIVER_EMAIL_LOCALLY", + "usr_FORWARD_EMAIL", + "usr_DELIVER_AND_FORWARD", + "usr_FORWARDING_ADDRESS", + "usr_GROUP_MEMBERSHIPS", + "usr_RESET_DESC2", + "usr_ERR_OCCURRED_MODIFYING_PASSWORD", + "usr_LOCK_ACCOUNT", + "usr_LOCK_ACCOUNT_TITLE", + "usr_REMOVE_ACCOUNT_TITLE", + "usr_NO_USER_ACCOUNTS", + "usr_ERR_OCCURRED_CREATING", + "usr_CANNOT_CONTAIN_WHITESPACE", + "usr_UNACCEPTABLE_CHARS", + "usr_MEMBER", + "usr_VPN_CLIENT_ACCESS", + "usr_SYSTEM_PASSWORD_FORM_TITLE", + "usr_SYSTEM_PASSWORD_UNPRINTABLES_IN_PASS", + "usr_SYSTEM_PASSWORD_VERIFY_ERROR", + "usr_SYSTEM_PASSWORD_AUTH_ERROR", + "usr_SYSTEM_PASSWORD_CHANGED", + "usr_CURRENT_SYSTEM_PASSWORD", + "usr_NEW_SYSTEM_PASSWORD", + "usr_NEW_SYSTEM_PASSWORD_VERIFY", + "usr_LABEL_IPSECRW_DOWNLOAD", + "usr_ERR_OCCURRED_DELETING" + ], + "de": [], + "th": [], + "nl": [], + "fr": [], + "sl": [ + "usr_ERR_OCCURRED_DELETING" + ], + "he": [ + "usr_FORM_TITLE", + "usr_P2_TITLE", + "usr_MODIFY_ADMIN_TITLE", + "usr_ACCOUNT_NAME", + "usr_FIRSTNAME", + "usr_LOCK_ACCOUNT", + "usr_LOCK_ACCOUNT_TITLE", + "usr_REMOVE_ACCOUNT_TITLE", + "usr_LOCK", + "usr_NO_USER_ACCOUNTS", + "usr_ERR_OCCURRED_CREATING", + "usr_CANNOT_CONTAIN_WHITESPACE", + "usr_UNACCEPTABLE_CHARS", + "usr_MEMBER", + "usr_VPN_CLIENT_ACCESS", + "usr_SYSTEM_PASSWORD_FORM_TITLE", + "usr_SYSTEM_PASSWORD_UNPRINTABLES_IN_PASS", + "usr_SYSTEM_PASSWORD_VERIFY_ERROR", + "usr_SYSTEM_PASSWORD_AUTH_ERROR", + "usr_SYSTEM_PASSWORD_CHANGED", + "usr_CURRENT_SYSTEM_PASSWORD", + "usr_NEW_SYSTEM_PASSWORD", + "usr_NEW_SYSTEM_PASSWORD_VERIFY", + "usr_LABEL_IPSECRW_DOWNLOAD", + "usr_ERR_OCCURRED_DELETING" + ], + "da": [], + "nb": [], + "et": [ + "usr_LABEL_IPSECRW_DOWNLOAD" + ], + "ru": [], + "hu": [], + "pt": [], + "it": [], + "tw": [], + "sv": [], + "br": [], + "tr": [], + "el": [], + "pl": [ + "usr_FORM_TITLE", + "usr_P2_TITLE", + "usr_MODIFY_ADMIN_TITLE", + "usr_ACCOUNT_NAME", + "usr_DEPARTMENT", + "usr_COMPANY", + "usr_STREET_ADDRESS", + "usr_CITY", + "usr_PHONE_NUMBER", + "usr_EMAIL_DELIVERY", + "usr_DELIVER_EMAIL_LOCALLY", + "usr_FORWARD_EMAIL", + "usr_DELIVER_AND_FORWARD", + "usr_FORWARDING_ADDRESS", + "usr_GROUP_MEMBERSHIPS", + "usr_RESET_DESC2", + "usr_ERR_OCCURRED_MODIFYING_PASSWORD", + "usr_LOCK_ACCOUNT", + "usr_LOCK_ACCOUNT_TITLE", + "usr_REMOVE_ACCOUNT_TITLE", + "usr_NO_USER_ACCOUNTS", + "usr_ERR_OCCURRED_CREATING", + "usr_CANNOT_CONTAIN_WHITESPACE", + "usr_UNACCEPTABLE_CHARS", + "usr_MEMBER", + "usr_VPN_CLIENT_ACCESS", + "usr_SYSTEM_PASSWORD_FORM_TITLE", + "usr_SYSTEM_PASSWORD_UNPRINTABLES_IN_PASS", + "usr_SYSTEM_PASSWORD_VERIFY_ERROR", + "usr_SYSTEM_PASSWORD_AUTH_ERROR", + "usr_SYSTEM_PASSWORD_CHANGED", + "usr_CURRENT_SYSTEM_PASSWORD", + "usr_NEW_SYSTEM_PASSWORD", + "usr_NEW_SYSTEM_PASSWORD_VERIFY", + "usr_LABEL_IPSECRW_DOWNLOAD", + "usr_ERR_OCCURRED_DELETING" + ], + "bg": [], + "id": [], + "es": [] +} \ No newline at end of file diff --git a/missing_translations_Userpassword.json b/missing_translations_Userpassword.json new file mode 100644 index 0000000..1c06c76 --- /dev/null +++ b/missing_translations_Userpassword.json @@ -0,0 +1,27 @@ +{ + "nb": [], + "es": [], + "cn": [], + "el": [], + "it": [], + "pt": [], + "fr": [], + "nl": [], + "de": [], + "sv": [], + "ru": [], + "bg": [], + "hu": [], + "tr": [], + "id": [], + "ja": [], + "he": [], + "tw": [], + "ro": [], + "et": [], + "da": [], + "th": [], + "sl": [], + "br": [], + "pl": [] +} \ No newline at end of file diff --git a/missing_translations_Viewlogfiles.json b/missing_translations_Viewlogfiles.json new file mode 100644 index 0000000..c14523f --- /dev/null +++ b/missing_translations_Viewlogfiles.json @@ -0,0 +1,52 @@ +{ + "ro": [], + "cn": [], + "it": [], + "tw": [], + "et": [ + "log_MATCH_PATTERN_LABEL", + "log_NO_MATCHING_LINES" + ], + "nb": [], + "br": [], + "sv": [], + "nl": [], + "pt": [], + "bg": [], + "tr": [], + "sl": [], + "th": [], + "ja": [ + "log_LOG_FILE_SELECT_DESC", + "log_FILTER_PATTERN_LABEL", + "log_MATCH_PATTERN_LABEL", + "log_VIEW", + "log_NO_MATCHING_LINES", + "log_REFRESH" + ], + "pl": [ + "log_LOG_FILE_SELECT_DESC", + "log_FILTER_PATTERN_LABEL", + "log_MATCH_PATTERN_LABEL", + "log_VIEW", + "log_NO_MATCHING_LINES", + "log_REFRESH" + ], + "id": [], + "es": [], + "da": [], + "el": [], + "ru": [], + "fr": [], + "hu": [], + "de": [], + "he": [ + "log_LOG_FILE_SELECT_DESC", + "log_FILTER_PATTERN_LABEL", + "log_MATCH_PATTERN_LABEL", + "log_VIEW", + "log_NO_MATCHING_LINES", + "log_REFRESH", + "log_OP_LABEL" + ] +} \ No newline at end of file diff --git a/missing_translations_Workgroup.json b/missing_translations_Workgroup.json new file mode 100644 index 0000000..9024ffb --- /dev/null +++ b/missing_translations_Workgroup.json @@ -0,0 +1,43 @@ +{ + "ru": [], + "he": [], + "id": [ + "wkg_LABEL_ROAM" + ], + "pl": [], + "hu": [], + "pt": [], + "it": [], + "sv": [], + "cn": [], + "es": [], + "de": [], + "tr": [], + "da": [ + "wkg_LABEL_ROAM" + ], + "nb": [], + "br": [], + "tw": [], + "el": [], + "bg": [], + "ja": [ + "wkg_FORM_TITLE", + "wkg_LABEL_WORKGROUP", + "wkg_LABEL_SERVERNAME", + "wkg_LABEL_PDC", + "wkg_LABEL_ROAM", + "wkg_SUCCESS" + ], + "fr": [], + "th": [ + "wkg_LABEL_WORKGROUP", + "wkg_LABEL_ROAM" + ], + "ro": [], + "et": [], + "nl": [ + "wkg_LABEL_ROAM" + ], + "sl": [] +} \ No newline at end of file diff --git a/missing_translations_Yum.json b/missing_translations_Yum.json new file mode 100644 index 0000000..cae07a6 --- /dev/null +++ b/missing_translations_Yum.json @@ -0,0 +1,99 @@ +{ + "fr": [], + "pl": [ + "yum_LABEL_ENABLED_REPOSITORIES", + "yum_LABEL_AVAILABLE_UPDATES", + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "it": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "he": [ + "yum_SUCCESS", + "yum_LABEL_YUM_STATUS", + "yum_LABEL_YUM_AUTOINSTALLUPDATES", + "yum_LABEL_YUM_PACKAGEFUNCTIONS", + "yum_LABEL_ENABLED_REPOSITORIES", + "yum_LABEL_AVAILABLE_UPDATES", + "yum_INSTALL_UPDATES", + "yum_LABEL_AVAILABLE_GROUPS", + "yum_LABEL_AVAILABLE_PACKAGES", + "yum_INSTALL_SOFTWARE", + "yum_LABEL_INSTALLED_GROUPS", + "yum_LABEL_INSTALLED_PACKAGES", + "yum_3MONTHLY", + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "ro": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "tw": [], + "th": [ + "yum_LABEL_YUM_DELTARPMPROCESS", + "yum_LABEL_YUM_DOWNLOADONLY" + ], + "de": [], + "hu": [], + "cn": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "ru": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "pt": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "br": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "da": [], + "tr": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "nl": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "el": [ + "yum_3MONTHLY", + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "nb": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "bg": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "sl": [ + "yum_3MONTHLY", + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "et": [ + "yum_LABEL_INSTALLED_GROUPS", + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "sv": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "es": [ + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "id": [ + "yum_INSTALL_SOFTWARE", + "yum_LABEL_YUM_DELTARPMPROCESS" + ], + "ja": [ + "yum_SUCCESS", + "yum_LABEL_YUM_STATUS", + "yum_LABEL_YUM_AUTOINSTALLUPDATES", + "yum_LABEL_YUM_PACKAGEFUNCTIONS", + "yum_LABEL_ENABLED_REPOSITORIES", + "yum_LABEL_AVAILABLE_UPDATES", + "yum_INSTALL_UPDATES", + "yum_LABEL_AVAILABLE_GROUPS", + "yum_LABEL_AVAILABLE_PACKAGES", + "yum_LABEL_INSTALLED_GROUPS", + "yum_LABEL_INSTALLED_PACKAGES", + "yum_3MONTHLY", + "yum_LABEL_YUM_DELTARPMPROCESS" + ] +} \ No newline at end of file