Przeglądaj źródła

- made the translations work when the app is frozen with CX_freeze
- some formatting changes for the application strings

Marius Stanciu 6 lat temu
rodzic
commit
3daed4cbfb

+ 29 - 25
FlatCAMApp.py

@@ -191,12 +191,11 @@ class App(QtCore.QObject):
                 App.log.debug("Win32!")
             else:
                 App.log.debug("Win64!")
-            self.data_path = shell.SHGetFolderPath(0, shellcon.CSIDL_APPDATA, None, 0) + \
-                '\FlatCAM'
+
+            self.data_path = shell.SHGetFolderPath(0, shellcon.CSIDL_APPDATA, None, 0) + '\FlatCAM'
             self.os = 'windows'
         else:  # Linux/Unix/MacOS
-            self.data_path = os.path.expanduser('~') + \
-                '/.FlatCAM'
+            self.data_path = os.path.expanduser('~') + '/.FlatCAM'
             self.os = 'unix'
 
         ###############################
@@ -2716,27 +2715,32 @@ class App(QtCore.QObject):
                 layout2.addWidget(logo, stretch=0)
 
                 title = QtWidgets.QLabel(
-                    "<font size=8><B>FlatCAM</B></font><BR>"
-                    "Version %s %s (%s) - %s <BR>"
-                    "<BR>"
-                    "2D Computer-Aided Printed Circuit Board<BR>"
-                    "Manufacturing.<BR>"
-                    "<BR>"
-                    "(c) 2014-2019 <B>Juan Pablo Caram</B><BR>"
-                    "<BR>"
-                    "<B> Main Contributors:</B><BR>"
-                    "Denis Hayrullin<BR>"
-                    "Kamil Sopko<BR>"
-                    "Marius Stanciu<BR>"
-                    "Matthieu Berthomé<BR>"
-                    "and many others found "
-                    "<a href = \"https://bitbucket.org/jpcgt/flatcam/pull-requests/?state=MERGED\">here.</a><BR>"
-                    "<BR>"
-                    "Development is done "
-                    "<a href = \"https://bitbucket.org/jpcgt/flatcam/src/Beta/\">here.</a><BR>"
-                    "DOWNLOAD area "
-                    "<a href = \"https://bitbucket.org/jpcgt/flatcam/downloads/\">here.</a><BR>"
-                    "" % (version, ('BETA' if beta else ''), version_date, platform.architecture()[0])
+                    _(
+                        "<font size=8><B>FlatCAM</B></font><BR>"
+                        "Version {version} {beta} ({date}) - {arch} <BR>"
+                        "<BR>"
+                        "2D Computer-Aided Printed Circuit Board<BR>"
+                        "Manufacturing.<BR>"
+                        "<BR>"
+                        "(c) 2014-2019 <B>Juan Pablo Caram</B><BR>"
+                        "<BR>"
+                        "<B> Main Contributors:</B><BR>"
+                        "Denis Hayrullin<BR>"
+                        "Kamil Sopko<BR>"
+                        "Marius Stanciu<BR>"
+                        "Matthieu Berthomé<BR>"
+                        "and many others found "
+                        "<a href = \"https://bitbucket.org/jpcgt/flatcam/pull-requests/?state=MERGED\">here.</a><BR>"
+                        "<BR>"
+                        "Development is done "
+                        "<a href = \"https://bitbucket.org/jpcgt/flatcam/src/Beta/\">here.</a><BR>"
+                        "DOWNLOAD area "
+                        "<a href = \"https://bitbucket.org/jpcgt/flatcam/downloads/\">here.</a><BR>"
+                        ""
+                    ).format(version=version,
+                             beta=('BETA' if beta else ''),
+                             date=version_date,
+                             arch=platform.architecture()[0])
                 )
                 title.setOpenExternalLinks(True)
 

+ 24 - 2
FlatCAMTranslation.py

@@ -8,6 +8,7 @@
 
 import os
 import sys
+from pathlib import Path
 
 from PyQt5 import QtWidgets, QtGui
 from PyQt5.QtCore import QSettings
@@ -33,9 +34,18 @@ languages_path_search = ''
 
 
 def load_languages():
+    available_translations = []
     languages_path_search = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'locale')
 
-    available_translations = next(os.walk(languages_path_search))[1]
+    try:
+        available_translations = next(os.walk(languages_path_search))[1]
+    except StopIteration:
+        if not available_translations:
+            languages_path_search = os.path.join(Path(__file__).parents[1], 'locale')
+            try:
+                available_translations = next(os.walk(languages_path_search))[1]
+            except StopIteration:
+                pass
 
     for lang in available_translations:
         try:
@@ -50,6 +60,10 @@ def languages_dir():
     return os.path.join(os.path.dirname(os.path.abspath(__file__)), 'locale')
 
 
+def languages_dir_cx_freeze():
+    return os.path.join(Path(__file__).parents[1], 'locale')
+
+
 def on_language_apply_click(app, restart=False):
     """
     Using instructions from here:
@@ -88,6 +102,7 @@ def on_language_apply_click(app, restart=False):
 
             restart_program(app=app)
 
+
 def apply_language(domain, lang=None):
     lang_code = ''
 
@@ -112,7 +127,14 @@ def apply_language(domain, lang=None):
             current_lang = gettext.translation(str(domain), localedir=languages_dir(), languages=[lang_code])
             current_lang.install()
         except Exception as e:
-            log.debug("FlatCAMTranslation.apply_language() --> %s" % str(e))
+            log.debug("FlatCAMTranslation.apply_language() --> %s. Perhaps is Cx_freeze-ed?" % str(e))
+            try:
+                current_lang = gettext.translation(str(domain),
+                                                   localedir=languages_dir_cx_freeze(),
+                                                   languages=[lang_code])
+                current_lang.install()
+            except Exception as e:
+                log.debug("FlatCAMTranslation.apply_language() --> %s" % str(e))
 
         return name
 

+ 2 - 1
README.md

@@ -16,7 +16,8 @@ CAD program, and create G-Code for Isolation routing.
 - changed some of the app strings formatting to work better with Poedit translation software
 - fixed bug in Drillcncjob TclCommand
 - finished translation in Romanian
-
+- made the translations work when the app is frozen with CX_freeze
+- some formatting changes for the application strings
 
 16.03.2019
 

BIN
locale/en/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 204 - 180
locale/en/LC_MESSAGES/strings.po


BIN
locale/ro/LC_MESSAGES/strings.mo


Plik diff jest za duży
+ 199 - 173
locale/ro/LC_MESSAGES/strings.po


Plik diff jest za duży
+ 209 - 192
locale_template/strings.pot


+ 2 - 1
make_win.py

@@ -52,8 +52,9 @@ if platform.architecture()[0] == '64bit':
     include_files.append((os.path.join(site_dir, "google/protobuf"), "google/protobuf"))
     include_files.append((os.path.join(site_dir, "ortools"), "ortools"))
 
-include_files.append(("share", "lib/share"))
+include_files.append(("locale", "lib/locale"))
 include_files.append(("postprocessors", "lib/postprocessors"))
+include_files.append(("share", "lib/share"))
 
 include_files.append(("README.md", "README.md"))
 include_files.append(("LICENSE", "LICENSE"))

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików