[game-data-packager] 01/01: move support for multilang packages from scummvm to core

Alexandre Detiste detiste-guest at moszumanska.debian.org
Fri Jun 26 09:32:40 UTC 2015


This is an automated email from the git hooks/post-receive script.

detiste-guest pushed a commit to branch master
in repository game-data-packager.

commit 71bf5527851d17a4e96bf7bda00027d64411ee8b
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Fri Jun 26 11:29:34 2015 +0200

    move support for multilang packages from scummvm to core
    
    so there are:
    
    - games where 1 'multilang' package provides several languages;
    where the engine maybe need some command-line switch (scummvm)
    
    - game with 1 package per language
---
 data/doom2.yaml                            |  1 +
 data/rtcw.yaml                             |  1 +
 game_data_packager/__init__.py             | 16 +++++++++++++---
 game_data_packager/games/scummvm_common.py |  2 --
 tools/babel.py                             |  7 ++-----
 5 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/data/doom2.yaml b/data/doom2.yaml
index 3c6eedc..eb04e30 100644
--- a/data/doom2.yaml
+++ b/data/doom2.yaml
@@ -17,6 +17,7 @@ help_text: |
 
 packages:
   doom2-wad:
+    langs: [en,fr]
     debian:
       provides: doom-wad
       conflicts: freedoom (<< 0.6.4-4), freedm (<< 0.6.4-4)
diff --git a/data/rtcw.yaml b/data/rtcw.yaml
index 85e289e..d46aea5 100644
--- a/data/rtcw.yaml
+++ b/data/rtcw.yaml
@@ -10,6 +10,7 @@ compress_deb: false
 
 packages:
   rtcw-data:
+    langs: [en,fr]
     steam:
       id: 9010
       path: "common/Return to Castle Wolfenstein"
diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index dbb7141..edc5c6b 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -351,8 +351,8 @@ class GameDataPackage(object):
         # This optional value will overide the game global copyright
         self.copyright = None
 
-        # Language, ISO-639 code
-        self.lang = 'en'
+        # Languages, list of ISO-639 codes
+        self.langs = ['en']
 
         # Where we install files.
         # For instance, if this is 'usr/share/games/quake3' and we have
@@ -460,6 +460,15 @@ class GameDataPackage(object):
             return 'expansion'
         return 'full'
 
+    @property
+    def lang(self):
+        return self.langs[0]
+
+    @lang.setter
+    def lang(self, value):
+        assert type(value) is str
+        self.langs = [value]
+
     def to_yaml(self):
         return {
             'architecture': self.architecture,
@@ -840,7 +849,7 @@ class GameData(object):
     def _populate_package(self, package, d):
         for k in ('expansion_for', 'expansion_for_ext', 'longname', 'symlinks', 'install_to',
                 'install_to_docdir', 'install_contents_of', 'steam', 'debian',
-                'rip_cd', 'architecture', 'aliases', 'better_version',
+                'rip_cd', 'architecture', 'aliases', 'better_version', 'langs',
                 'copyright', 'engine', 'gog', 'origin', 'lang', 'component', 'section'):
             if k in d:
                 setattr(package, k, d[k])
@@ -849,6 +858,7 @@ class GameData(object):
         assert package.component in ('main', 'contrib', 'non-free', 'local')
         assert package.component == 'local' or 'license' in d
         assert package.section in ('games', 'doc'), 'unsupported'
+        assert type(package.langs) is list
 
         if 'install_to' in d:
             assert 'usr/share/games/' + package.name != d['install_to'] + '-data', \
diff --git a/game_data_packager/games/scummvm_common.py b/game_data_packager/games/scummvm_common.py
index b30e55a..7f00f55 100644
--- a/game_data_packager/games/scummvm_common.py
+++ b/game_data_packager/games/scummvm_common.py
@@ -45,8 +45,6 @@ class ScummvmGameData(GameData):
     def _populate_package(self, package, d):
         super(ScummvmGameData, self)._populate_package(package, d)
         package.gameid = d.get('gameid')
-        package.langs = d.get('langs',[package.lang])
-        assert type(package.langs) is list
 
     def fill_extra_files(self, package, destdir):
         super(ScummvmGameData, self).fill_extra_files(package, destdir)
diff --git a/tools/babel.py b/tools/babel.py
index b231cb2..7faface 100755
--- a/tools/babel.py
+++ b/tools/babel.py
@@ -36,15 +36,13 @@ for name, game in load_games().items():
     for package in game.packages.values():
         for m_lang in getattr(package, 'langs', []):
             if m_lang not in stats:
-                stats[m_lang] = 'm'
+                stats[m_lang] = '*'
 
     genres[game.genre] = genres.get(game.genre, 0) + 1
     stats['genre'] = game.genre
     stats['shortname'] = name
     stats['longname'] = ascii_safe(game.longname, force=True)
     stats['total'] = len(game.packages)
-    if name in ('doom2', 'rtcw'):
-        stats['fr'] = '*'
     games.append(stats)
 
 if 'ru' not in langs:
@@ -108,9 +106,8 @@ html.write('''
 </tr>
 </table>
 <ul>
-<li>* : provided as an alternative one-file in a 'en'/'C' package</li>
 <li>! : language is missing</li>
-<li>m : multi-lang support in a single package</li>
+<li>* : multi-lang support in a single package</li>
 </ul>
 </html>
 '''

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list