1234567891011121314151617181920212223242526272829303132333435363738394041 |
- # Copyright (c) 2019 Ultimaker B.V.
- # Cura is released under the terms of the LGPLv3 or higher.
- import argparse #To get the source directory from command line arguments.
- import os #To find files from the source.
- import os.path #To find files from the source and the destination path.
- ## Imports translation files from Lionbridge.
- #
- # Lionbridge has a bit of a weird export feature. It exports it to the same
- # file type as what we imported, so that's a .pot file. However this .pot file
- # only contains the translations, so the header is completely empty. We need
- # to merge those translations into our existing files so that the header is
- # preserved.
- def lionbridge_import(source: str) -> None:
- print("Importing from:", source)
- print("Importing to Cura:", destination_cura())
- print("Importing to Uranium:", destination_uranium())
- ## Gets the destination path to copy the translations for Cura to.
- def destination_cura() -> str:
- return os.path.abspath(os.path.join(__file__, "..", "..", "resources", "i18n"))
- ## Gets the destination path to copy the translations for Uranium to.
- def destination_uranium() -> str:
- try:
- import UM
- except ImportError:
- relative_path = os.path.join(__file__, "..", "..", "..", "Uranium", "resources", "i18n", "uranium.pot")
- print(os.path.abspath(relative_path))
- if os.path.exists(relative_path):
- return os.path.abspath(relative_path)
- else:
- raise Exception("Can't find Uranium. Please put UM on the PYTHONPATH or put the Uranium folder next to the Cura folder.")
- return os.path.abspath(os.path.join(UM.__file__, "..", "..", "resources", "i18n"))
- if __name__ == "__main__":
- argparser = argparse.ArgumentParser(description = "Import translation files from Lionbridge.")
- argparser.add_argument("source")
- args = argparser.parse_args()
- lionbridge_import(args.source)
|