diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2016-07-29 18:15:03 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2016-07-29 18:44:42 +0200 |
commit | 6a3271735186a2b4d3c500f4f60c0c03a12bdd2f (patch) | |
tree | e5ceaf01ba400b1ef552fbeec92919826200cd30 | |
parent | 7d6df771f603e9642047264f967525422ef09e99 (diff) | |
download | MusicSampler-6a3271735186a2b4d3c500f4f60c0c03a12bdd2f.tar.gz MusicSampler-6a3271735186a2b4d3c500f4f60c0c03a12bdd2f.tar.zst MusicSampler-6a3271735186a2b4d3c500f4f60c0c03a12bdd2f.zip |
Make music_sampler multilingual1.2.0
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | MANIFEST.in | 1 | ||||
-rw-r--r-- | documentation_fr.md | 1 | ||||
-rw-r--r-- | music_sampler.spec | 3 | ||||
-rw-r--r-- | music_sampler/action.py | 2 | ||||
-rw-r--r-- | music_sampler/actions/interrupt_wait.py | 2 | ||||
-rw-r--r-- | music_sampler/actions/pause.py | 4 | ||||
-rw-r--r-- | music_sampler/actions/play.py | 18 | ||||
-rw-r--r-- | music_sampler/actions/run_command.py | 6 | ||||
-rw-r--r-- | music_sampler/actions/seek.py | 8 | ||||
-rw-r--r-- | music_sampler/actions/stop.py | 13 | ||||
-rw-r--r-- | music_sampler/actions/stop_all_actions.py | 2 | ||||
-rw-r--r-- | music_sampler/actions/unpause.py | 4 | ||||
-rw-r--r-- | music_sampler/actions/volume.py | 24 | ||||
-rw-r--r-- | music_sampler/actions/wait.py | 19 | ||||
-rw-r--r-- | music_sampler/app_blocks/actionlist.py | 2 | ||||
-rw-r--r-- | music_sampler/helpers.py | 51 | ||||
-rw-r--r-- | music_sampler/locales/fr/LC_MESSAGES/music_sampler.po | 424 | ||||
-rw-r--r-- | music_sampler/music_sampler.kv | 4 |
19 files changed, 524 insertions, 66 deletions
@@ -1,3 +1,5 @@ | |||
1 | *.pyc | ||
2 | *.mo | ||
1 | build/ | 3 | build/ |
2 | dist/ | 4 | dist/ |
3 | music_sampler/__pycache__/ | 5 | music_sampler/__pycache__/ |
diff --git a/MANIFEST.in b/MANIFEST.in index 5dab67a..0bf0aa5 100644 --- a/MANIFEST.in +++ b/MANIFEST.in | |||
@@ -1 +1,2 @@ | |||
1 | include music_sampler/music_sampler.kv | 1 | include music_sampler/music_sampler.kv |
2 | recursive-include music_sampler/locales * | ||
diff --git a/documentation_fr.md b/documentation_fr.md index 2eba81d..529329c 100644 --- a/documentation_fr.md +++ b/documentation_fr.md | |||
@@ -79,6 +79,7 @@ Toutes les options au lancement sont facultatives ; la plupart du temps lancer l | |||
79 | * `-p MUSIC_PATH, --music-path MUSIC_PATH` : précise le chemin des musiques (par défaut, le dossier courant). | 79 | * `-p MUSIC_PATH, --music-path MUSIC_PATH` : précise le chemin des musiques (par défaut, le dossier courant). |
80 | * `-d, --debug` : Affiche les informations de déboggage (désactivé par défaut) | 80 | * `-d, --debug` : Affiche les informations de déboggage (désactivé par défaut) |
81 | * `-V, --version` : affiche la version courante et quitte (utilisable uniquement pour la version compilée). | 81 | * `-V, --version` : affiche la version courante et quitte (utilisable uniquement pour la version compilée). |
82 | * `-L, --language` : change la langue de l'application. Actuellement: fr, en (par défaut 'fr') | ||
82 | * `--no-focus-warning`: Ne pas afficher d'avertissement lorsque l'application perd le focus. | 83 | * `--no-focus-warning`: Ne pas afficher d'avertissement lorsque l'application perd le focus. |
83 | 84 | ||
84 | Les options suivantes sont plutôt réservées à un usage avancé de music_sampler, ou en cas de problème avec la configuration standard : | 85 | Les options suivantes sont plutôt réservées à un usage avancé de music_sampler, ou en cas de problème avec la configuration standard : |
diff --git a/music_sampler.spec b/music_sampler.spec index bd69562..5a81464 100644 --- a/music_sampler.spec +++ b/music_sampler.spec | |||
@@ -30,7 +30,8 @@ pyinstaller_file.close() | |||
30 | 30 | ||
31 | data = [ | 31 | data = [ |
32 | ('music_sampler/music_sampler.kv', '.'), | 32 | ('music_sampler/music_sampler.kv', '.'), |
33 | ('.pyinstaller_commit', '.') | 33 | ('.pyinstaller_commit', '.'), |
34 | ('music_sampler/locales', 'locales') | ||
34 | ] | 35 | ] |
35 | 36 | ||
36 | a = Analysis(['run.py'], | 37 | a = Analysis(['run.py'], |
diff --git a/music_sampler/action.py b/music_sampler/action.py index ef56b7c..d269d0e 100644 --- a/music_sampler/action.py +++ b/music_sampler/action.py | |||
@@ -110,4 +110,4 @@ class Action: | |||
110 | return getattr(actions, self.action)\ | 110 | return getattr(actions, self.action)\ |
111 | .description(self, **self.arguments) | 111 | .description(self, **self.arguments) |
112 | else: | 112 | else: |
113 | return "unknown action {}".format(self.action) | 113 | return _("unknown action {}").format(self.action) |
diff --git a/music_sampler/actions/interrupt_wait.py b/music_sampler/actions/interrupt_wait.py index 8f465f0..f85a3c4 100644 --- a/music_sampler/actions/interrupt_wait.py +++ b/music_sampler/actions/interrupt_wait.py | |||
@@ -2,4 +2,4 @@ def run(action, wait_id=None, **kwargs): | |||
2 | action.mapping.interrupt_wait(wait_id) | 2 | action.mapping.interrupt_wait(wait_id) |
3 | 3 | ||
4 | def description(action, wait_id=None, **kwargs): | 4 | def description(action, wait_id=None, **kwargs): |
5 | return "interrupt wait with id {}".format(wait_id) | 5 | return _("interrupt wait with id {}").format(wait_id) |
diff --git a/music_sampler/actions/pause.py b/music_sampler/actions/pause.py index bb27734..4575f32 100644 --- a/music_sampler/actions/pause.py +++ b/music_sampler/actions/pause.py | |||
@@ -5,6 +5,6 @@ def run(action, music=None, **kwargs): | |||
5 | 5 | ||
6 | def description(action, music=None, **kwargs): | 6 | def description(action, music=None, **kwargs): |
7 | if music is not None: | 7 | if music is not None: |
8 | return "pausing « {} »".format(music.name) | 8 | return _("pausing « {} »").format(music.name) |
9 | else: | 9 | else: |
10 | return "pausing all musics" | 10 | return _("pausing all musics") |
diff --git a/music_sampler/actions/play.py b/music_sampler/actions/play.py index fdba95b..f6057ad 100644 --- a/music_sampler/actions/play.py +++ b/music_sampler/actions/play.py | |||
@@ -19,26 +19,32 @@ def run(action, music=None, fade_in=0, start_at=0, | |||
19 | 19 | ||
20 | def description(action, music=None, fade_in=0, start_at=0, | 20 | def description(action, music=None, fade_in=0, start_at=0, |
21 | restart_if_running=False, volume=100, loop=0, **kwargs): | 21 | restart_if_running=False, volume=100, loop=0, **kwargs): |
22 | formats = [] | ||
22 | message = "starting " | 23 | message = "starting " |
23 | if music is not None: | 24 | if music is not None: |
24 | message += "« {} »".format(music.name) | 25 | message += "« {} »" |
26 | formats.append(music.name) | ||
25 | else: | 27 | else: |
26 | message += "all musics" | 28 | message += "all musics" |
27 | 29 | ||
28 | if start_at != 0: | 30 | if start_at != 0: |
29 | message += " at {}s".format(start_at) | 31 | message += " at {}s" |
32 | formats.append(start_at) | ||
30 | 33 | ||
31 | if fade_in != 0: | 34 | if fade_in != 0: |
32 | message += " with {}s fade_in".format(fade_in) | 35 | message += " with {}s fade_in" |
36 | formats.append(fade_in) | ||
33 | 37 | ||
34 | message += " at volume {}%".format(volume) | 38 | message += " at volume {}%" |
39 | formats.append(volume) | ||
35 | 40 | ||
36 | if loop > 0: | 41 | if loop > 0: |
37 | message += " {} times".format(loop + 1) | 42 | message += " {} times" |
43 | formats.append(loop + 1) | ||
38 | elif loop < 0: | 44 | elif loop < 0: |
39 | message += " in loop" | 45 | message += " in loop" |
40 | 46 | ||
41 | if restart_if_running: | 47 | if restart_if_running: |
42 | message += " (restarting if already running)" | 48 | message += " (restarting if already running)" |
43 | 49 | ||
44 | return message | 50 | return _(message).format(*formats) |
diff --git a/music_sampler/actions/run_command.py b/music_sampler/actions/run_command.py index 1e80c1e..df23056 100644 --- a/music_sampler/actions/run_command.py +++ b/music_sampler/actions/run_command.py | |||
@@ -6,8 +6,10 @@ def run(action, command="", wait=False, **kwargs): | |||
6 | action.process.wait() | 6 | action.process.wait() |
7 | 7 | ||
8 | def description(action, command="", wait=False, **kwargs): | 8 | def description(action, command="", wait=False, **kwargs): |
9 | message = "running command {}".format(command) | 9 | formats = [] |
10 | message = "running command {}" | ||
11 | formats.append(command) | ||
10 | if wait: | 12 | if wait: |
11 | message += " (waiting for its execution to finish)" | 13 | message += " (waiting for its execution to finish)" |
12 | 14 | ||
13 | return message | 15 | return _(message).format(*formats) |
diff --git a/music_sampler/actions/seek.py b/music_sampler/actions/seek.py index 467af7d..9f19798 100644 --- a/music_sampler/actions/seek.py +++ b/music_sampler/actions/seek.py | |||
@@ -5,15 +5,15 @@ def run(action, music=None, value=0, delta=False, **kwargs): | |||
5 | def description(action, music=None, value=0, delta=False, **kwargs): | 5 | def description(action, music=None, value=0, delta=False, **kwargs): |
6 | if delta: | 6 | if delta: |
7 | if music is not None: | 7 | if music is not None: |
8 | return "moving music « {} » by {:+d}s" \ | 8 | return _("moving music « {} » by {:+d}s") \ |
9 | .format(music.name, value) | 9 | .format(music.name, value) |
10 | else: | 10 | else: |
11 | return "moving all musics by {:+d}s" \ | 11 | return _("moving all musics by {:+d}s") \ |
12 | .format(value) | 12 | .format(value) |
13 | else: | 13 | else: |
14 | if music is not None: | 14 | if music is not None: |
15 | return "moving music « {} » to position {}s" \ | 15 | return _("moving music « {} » to position {}s") \ |
16 | .format(music.name, value) | 16 | .format(music.name, value) |
17 | else: | 17 | else: |
18 | return "moving all musics to position {}s" \ | 18 | return _("moving all musics to position {}s") \ |
19 | .format(value) | 19 | .format(value) |
diff --git a/music_sampler/actions/stop.py b/music_sampler/actions/stop.py index 88cc66d..769c312 100644 --- a/music_sampler/actions/stop.py +++ b/music_sampler/actions/stop.py | |||
@@ -19,22 +19,25 @@ def run(action, music=None, fade_out=0, wait=False, | |||
19 | def description(action, music=None, fade_out=0, wait=False, | 19 | def description(action, music=None, fade_out=0, wait=False, |
20 | set_wait_id=None, **kwargs): | 20 | set_wait_id=None, **kwargs): |
21 | 21 | ||
22 | formats = [] | ||
22 | message = "stopping " | 23 | message = "stopping " |
23 | if music is not None: | 24 | if music is not None: |
24 | message += "music « {} »".format(music.name) | 25 | message += "music « {} »" |
26 | formats.append(music.name) | ||
25 | else: | 27 | else: |
26 | message += "all musics" | 28 | message += "all musics" |
27 | 29 | ||
28 | if fade_out > 0: | 30 | if fade_out > 0: |
29 | message += " with {}s fadeout".format(fade_out) | 31 | message += " with {}s fadeout" |
32 | formats.append(fade_out) | ||
30 | if wait: | 33 | if wait: |
31 | if set_wait_id is not None: | 34 | if set_wait_id is not None: |
32 | message += " (waiting the end of fadeout, with id {})"\ | 35 | message += " (waiting the end of fadeout, with id {})" |
33 | .format(set_wait_id) | 36 | formats.append(set_wait_id) |
34 | else: | 37 | else: |
35 | message += " (waiting the end of fadeout)" | 38 | message += " (waiting the end of fadeout)" |
36 | 39 | ||
37 | return message | 40 | return _(message).format(*formats) |
38 | 41 | ||
39 | def interrupt(action, music=None, fade_out=0, wait=False, | 42 | def interrupt(action, music=None, fade_out=0, wait=False, |
40 | set_wait_id=None, **kwargs): | 43 | set_wait_id=None, **kwargs): |
diff --git a/music_sampler/actions/stop_all_actions.py b/music_sampler/actions/stop_all_actions.py index 4ea875a..14a1a94 100644 --- a/music_sampler/actions/stop_all_actions.py +++ b/music_sampler/actions/stop_all_actions.py | |||
@@ -11,4 +11,4 @@ def description(action, other_only=False, **kwargs): | |||
11 | if other_only: | 11 | if other_only: |
12 | message += " except this key" | 12 | message += " except this key" |
13 | 13 | ||
14 | return message | 14 | return _(message) |
diff --git a/music_sampler/actions/unpause.py b/music_sampler/actions/unpause.py index 5fa88c3..6505ab8 100644 --- a/music_sampler/actions/unpause.py +++ b/music_sampler/actions/unpause.py | |||
@@ -5,6 +5,6 @@ def run(action, music=None, **kwargs): | |||
5 | 5 | ||
6 | def description(action, music=None, **kwargs): | 6 | def description(action, music=None, **kwargs): |
7 | if music is not None: | 7 | if music is not None: |
8 | return "unpausing « {} »".format(music.name) | 8 | return _("unpausing « {} »").format(music.name) |
9 | else: | 9 | else: |
10 | return "unpausing all musics" | 10 | return _("unpausing all musics") |
diff --git a/music_sampler/actions/volume.py b/music_sampler/actions/volume.py index 7dda3c1..e02cdfa 100644 --- a/music_sampler/actions/volume.py +++ b/music_sampler/actions/volume.py | |||
@@ -6,23 +6,27 @@ def run(action, music=None, value=100, fade=0, delta=False, **kwargs): | |||
6 | 6 | ||
7 | def description(action, music=None, | 7 | def description(action, music=None, |
8 | value=100, delta=False, fade=0, **kwargs): | 8 | value=100, delta=False, fade=0, **kwargs): |
9 | formats = [] | ||
9 | message = "" | 10 | message = "" |
10 | if delta: | 11 | if delta: |
11 | if music is not None: | 12 | if music is not None: |
12 | message += "{:+d}% to volume of « {} »" \ | 13 | message += "{:+d}% to volume of « {} »" |
13 | .format(value, music.name) | 14 | formats.append(value) |
15 | formats.append(music.name) | ||
14 | else: | 16 | else: |
15 | message += "{:+d}% to volume" \ | 17 | message += "{:+d}% to volume" |
16 | .format(value) | 18 | formats.append(value) |
17 | else: | 19 | else: |
18 | if music is not None: | 20 | if music is not None: |
19 | message += "setting volume of « {} » to {}%" \ | 21 | message += "setting volume of « {} » to {}%" |
20 | .format(music.name, value) | 22 | formats.append(music.name) |
23 | formats.append(value) | ||
21 | else: | 24 | else: |
22 | message += "setting volume to {}%" \ | 25 | message += "setting volume to {}%" |
23 | .format(value) | 26 | formats.append(value) |
24 | 27 | ||
25 | if fade > 0: | 28 | if fade > 0: |
26 | message += " with {}s fade".format(fade) | 29 | message += " with {}s fade" |
30 | formats.append(fade) | ||
27 | 31 | ||
28 | return message | 32 | return _(message).format(*formats) |
diff --git a/music_sampler/actions/wait.py b/music_sampler/actions/wait.py index ea42408..e6d07f2 100644 --- a/music_sampler/actions/wait.py +++ b/music_sampler/actions/wait.py | |||
@@ -16,21 +16,24 @@ def run(action, duration=0, music=None, set_wait_id=None, **kwargs): | |||
16 | action.sleep_event.wait() | 16 | action.sleep_event.wait() |
17 | 17 | ||
18 | def description(action, duration=0, music=None, set_wait_id=None, **kwargs): | 18 | def description(action, duration=0, music=None, set_wait_id=None, **kwargs): |
19 | formats = [] | ||
19 | message = "" | 20 | message = "" |
20 | if music is None: | 21 | if music is None: |
21 | message += "waiting {}s" \ | 22 | message += "waiting {}s" |
22 | .format(duration) | 23 | formats.append(duration) |
23 | elif duration == 0: | 24 | elif duration == 0: |
24 | message += "waiting the end of « {} »" \ | 25 | message += "waiting the end of « {} »" |
25 | .format(music.name) | 26 | formats.append(music.name) |
26 | else: | 27 | else: |
27 | message += "waiting the end of « {} » + {}s" \ | 28 | message += "waiting the end of « {} » + {}s" |
28 | .format(music.name, duration) | 29 | formats.append(music.name) |
30 | formats.append(duration) | ||
29 | 31 | ||
30 | if set_wait_id is not None: | 32 | if set_wait_id is not None: |
31 | message += " (setting id = {})".format(set_wait_id) | 33 | message += " (setting id = {})" |
34 | formats.append(set_wait_id) | ||
32 | 35 | ||
33 | return message | 36 | return _(message).format(*formats) |
34 | 37 | ||
35 | def interrupt(action, duration=0, music=None, **kwargs): | 38 | def interrupt(action, duration=0, music=None, **kwargs): |
36 | if action.sleep_event is not None: | 39 | if action.sleep_event is not None: |
diff --git a/music_sampler/app_blocks/actionlist.py b/music_sampler/app_blocks/actionlist.py index 51f4b82..8c4c5e9 100644 --- a/music_sampler/app_blocks/actionlist.py +++ b/music_sampler/app_blocks/actionlist.py | |||
@@ -15,7 +15,7 @@ class ActionList(RelativeLayout): | |||
15 | action_list = ListProperty([]) | 15 | action_list = ListProperty([]) |
16 | 16 | ||
17 | def update_list(self, key, action_descriptions): | 17 | def update_list(self, key, action_descriptions): |
18 | self.action_title = "actions linked to key {}:".format(key.key_sym) | 18 | self.action_title = _("actions linked to key {}:").format(key.key_sym) |
19 | action_list = [] | 19 | action_list = [] |
20 | 20 | ||
21 | for [action, status] in action_descriptions: | 21 | for [action, status] in action_descriptions: |
diff --git a/music_sampler/helpers.py b/music_sampler/helpers.py index 2249746..2199058 100644 --- a/music_sampler/helpers.py +++ b/music_sampler/helpers.py | |||
@@ -5,6 +5,8 @@ import os | |||
5 | import math | 5 | import math |
6 | import sounddevice as sd | 6 | import sounddevice as sd |
7 | import logging | 7 | import logging |
8 | import gettext | ||
9 | gettext.install('music_sampler') | ||
8 | Logger = logging.getLogger("kivy") | 10 | Logger = logging.getLogger("kivy") |
9 | 11 | ||
10 | from . import sysfont | 12 | from . import sysfont |
@@ -66,71 +68,76 @@ def parse_args(): | |||
66 | sys.argv.extend(["-c", "kivy:log_name:/tmp/music_sampler_%_.txt"]) | 68 | sys.argv.extend(["-c", "kivy:log_name:/tmp/music_sampler_%_.txt"]) |
67 | 69 | ||
68 | parser = argparse.ArgumentParser( | 70 | parser = argparse.ArgumentParser( |
69 | description="A Music Sampler application.", | 71 | description=_("A Music Sampler application."), |
70 | formatter_class=argparse.ArgumentDefaultsHelpFormatter) | 72 | formatter_class=argparse.ArgumentDefaultsHelpFormatter) |
71 | parser.add_argument("-c", "--config", | 73 | parser.add_argument("-c", "--config", |
72 | default="config.yml", | 74 | default="config.yml", |
73 | required=False, | 75 | required=False, |
74 | help="Config file to load") | 76 | help=_("Config file to load")) |
75 | parser.add_argument("-p", "--music-path", | 77 | parser.add_argument("-p", "--music-path", |
76 | default=".", | 78 | default=".", |
77 | required=False, | 79 | required=False, |
78 | help="Folder in which to find the music files") | 80 | help=_("Folder in which to find the music files")) |
79 | parser.add_argument("-d", "--debug", | 81 | parser.add_argument("-d", "--debug", |
80 | nargs=0, | 82 | nargs=0, |
81 | action=DebugModeAction, | 83 | action=DebugModeAction, |
82 | help="Print messages in console") | 84 | help=_("Print messages in console")) |
83 | parser.add_argument("-m", "--builtin-mixing", | 85 | parser.add_argument("-m", "--builtin-mixing", |
84 | action="store_true", | 86 | action="store_true", |
85 | help="Make the mixing of sounds manually\ | 87 | help=_("Make the mixing of sounds manually\ |
86 | (do it if the system cannot handle it correctly)") | 88 | (do it if the system cannot handle it correctly)")) |
87 | parser.add_argument("-l", "--latency", | 89 | parser.add_argument("-l", "--latency", |
88 | default="high", | 90 | default="high", |
89 | required=False, | 91 | required=False, |
90 | help="Latency: low, high or number of seconds") | 92 | help=_("Latency: low, high or number of seconds")) |
91 | parser.add_argument("-b", "--blocksize", | 93 | parser.add_argument("-b", "--blocksize", |
92 | default=0, | 94 | default=0, |
93 | type=int, | 95 | type=int, |
94 | required=False, | 96 | required=False, |
95 | help="Blocksize: If not 0, the number of frames to take\ | 97 | help=_("Blocksize: If not 0, the number of frames to take\ |
96 | at each step for the mixer") | 98 | at each step for the mixer")) |
97 | parser.add_argument("-f", "--frame-rate", | 99 | parser.add_argument("-f", "--frame-rate", |
98 | default=44100, | 100 | default=44100, |
99 | type=int, | 101 | type=int, |
100 | required=False, | 102 | required=False, |
101 | help="Frame rate to play the musics") | 103 | help=_("Frame rate to play the musics")) |
102 | parser.add_argument("-x", "--channels", | 104 | parser.add_argument("-x", "--channels", |
103 | default=2, | 105 | default=2, |
104 | type=int, | 106 | type=int, |
105 | required=False, | 107 | required=False, |
106 | help="Number of channels to use") | 108 | help=_("Number of channels to use")) |
107 | parser.add_argument("-s", "--sample-width", | 109 | parser.add_argument("-s", "--sample-width", |
108 | default=2, | 110 | default=2, |
109 | type=int, | 111 | type=int, |
110 | required=False, | 112 | required=False, |
111 | help="Sample width (number of bytes for each frame)") | 113 | help=_("Sample width (number of bytes for each frame)")) |
112 | parser.add_argument("-V", "--version", | 114 | parser.add_argument("-V", "--version", |
113 | action="version", | 115 | action="version", |
114 | help="Displays the current version and exits. Only use\ | 116 | help=_("Displays the current version and exits. Only use\ |
115 | in bundled package", | 117 | in bundled package"), |
116 | version=show_version()) | 118 | version=show_version()) |
117 | parser.add_argument("--device", | 119 | parser.add_argument("--device", |
118 | action=SelectDeviceAction, | 120 | action=SelectDeviceAction, |
119 | help="Select this sound device" | 121 | help=_("Select this sound device") |
120 | ) | 122 | ) |
121 | parser.add_argument("--list-devices", | 123 | parser.add_argument("--list-devices", |
122 | nargs=0, | 124 | nargs=0, |
123 | action=ListDevicesAction, | 125 | action=ListDevicesAction, |
124 | help="List available sound devices" | 126 | help=_("List available sound devices") |
125 | ) | 127 | ) |
126 | parser.add_argument("--no-focus-warning", | 128 | parser.add_argument("--no-focus-warning", |
127 | action='store_true', | 129 | action='store_true', |
128 | help="Don't show warning when focus is lost" | 130 | help=_("Don't show warning when focus is lost") |
131 | ) | ||
132 | parser.add_argument("-L", "--language", | ||
133 | required=False, | ||
134 | default="fr", | ||
135 | help=_("Select another language") | ||
129 | ) | 136 | ) |
130 | parser.add_argument('--', | 137 | parser.add_argument('--', |
131 | dest="args", | 138 | dest="args", |
132 | help="Kivy arguments. All arguments after this are interpreted\ | 139 | help=_("Kivy arguments. All arguments after this are interpreted\ |
133 | by Kivy. Pass \"-- --help\" to get Kivy's usage.") | 140 | by Kivy. Pass \"-- --help\" to get Kivy's usage.")) |
134 | 141 | ||
135 | args = parser.parse_args(argv) | 142 | args = parser.parse_args(argv) |
136 | 143 | ||
@@ -143,6 +150,10 @@ def parse_args(): | |||
143 | Config.sample_width = args.sample_width | 150 | Config.sample_width = args.sample_width |
144 | Config.builtin_mixing = args.builtin_mixing | 151 | Config.builtin_mixing = args.builtin_mixing |
145 | Config.no_focus_warning = args.no_focus_warning | 152 | Config.no_focus_warning = args.no_focus_warning |
153 | if args.language != 'en': | ||
154 | gettext.translation("music_sampler", | ||
155 | localedir=path() + '/locales', | ||
156 | languages=[args.language]).install() | ||
146 | if args.music_path.endswith("/"): | 157 | if args.music_path.endswith("/"): |
147 | Config.music_path = args.music_path | 158 | Config.music_path = args.music_path |
148 | else: | 159 | else: |
@@ -167,7 +178,7 @@ def show_version(): | |||
167 | with open(path() + ".pyinstaller_commit", "r") as f: | 178 | with open(path() + ".pyinstaller_commit", "r") as f: |
168 | return f.read() | 179 | return f.read() |
169 | else: | 180 | else: |
170 | return "option '-v' can only be used in bundled package" | 181 | return _("option '-V' can only be used in bundled package") |
171 | 182 | ||
172 | def duration_to_min_sec(duration): | 183 | def duration_to_min_sec(duration): |
173 | minutes = int(duration / 60) | 184 | minutes = int(duration / 60) |
diff --git a/music_sampler/locales/fr/LC_MESSAGES/music_sampler.po b/music_sampler/locales/fr/LC_MESSAGES/music_sampler.po new file mode 100644 index 0000000..e711737 --- /dev/null +++ b/music_sampler/locales/fr/LC_MESSAGES/music_sampler.po | |||
@@ -0,0 +1,424 @@ | |||
1 | # This file is distributed under the same license as the music_sampler package. | ||
2 | # | ||
3 | msgid "" | ||
4 | msgstr "" | ||
5 | "Language: fr\n" | ||
6 | "MIME-Version: 1.0\n" | ||
7 | "Content-Type: text/plain; charset=UTF-8\n" | ||
8 | "Content-Transfer-Encoding: 8bit\n" | ||
9 | |||
10 | #: music_sampler/action.py:113 | ||
11 | msgid "unknown action {}" | ||
12 | msgstr "Action « {} » inconnue" | ||
13 | |||
14 | #: music_sampler/helpers.py:69 | ||
15 | msgid "A Music Sampler application." | ||
16 | msgstr "Un lecteur de musique préprogrammable" | ||
17 | |||
18 | #: music_sampler/helpers.py:74 | ||
19 | msgid "Config file to load" | ||
20 | msgstr "Fichier de configuration à charger" | ||
21 | |||
22 | #: music_sampler/helpers.py:78 | ||
23 | msgid "Folder in which to find the music files" | ||
24 | msgstr "Dossier dans lequel trouver les fichiers de musiques" | ||
25 | |||
26 | #: music_sampler/helpers.py:82 | ||
27 | msgid "Print messages in console" | ||
28 | msgstr "Afficher les messages de debug" | ||
29 | |||
30 | #: music_sampler/helpers.py:85 | ||
31 | msgid "" | ||
32 | "Make the mixing of sounds manually (do it if the system " | ||
33 | "cannot handle it correctly)" | ||
34 | msgstr "Faire le mixage en interne (activer si le système n'y parvient pas)" | ||
35 | |||
36 | #: music_sampler/helpers.py:90 | ||
37 | msgid "Latency: low, high or number of seconds" | ||
38 | msgstr "Latence: low, high ou un nombre de secondes." | ||
39 | |||
40 | #: music_sampler/helpers.py:95 | ||
41 | msgid "" | ||
42 | "Blocksize: If not 0, the number of frames to take at each " | ||
43 | "step for the mixer" | ||
44 | msgstr "Taille de block: si non nul, indique le nombre de frames à prendre à chaque étape de mixage" | ||
45 | |||
46 | #: music_sampler/helpers.py:101 | ||
47 | msgid "Frame rate to play the musics" | ||
48 | msgstr "Fréquence d'échantillonnage pour jouer les musiques" | ||
49 | |||
50 | #: music_sampler/helpers.py:106 | ||
51 | msgid "Number of channels to use" | ||
52 | msgstr "Nombre de canaux par musique" | ||
53 | |||
54 | #: music_sampler/helpers.py:111 | ||
55 | msgid "Sample width (number of bytes for each frame)" | ||
56 | msgstr "Largeur d'échantillonnage (nombre d'octets pour chaque frame)" | ||
57 | |||
58 | #: music_sampler/helpers.py:114 | ||
59 | msgid "" | ||
60 | "Displays the current version and exits. Only use in " | ||
61 | "bundled package" | ||
62 | msgstr "Affiche la version courante et quitte (utilisable uniuqement pour la version compilée)" | ||
63 | |||
64 | #: music_sampler/helpers.py:119 | ||
65 | msgid "Select this sound device" | ||
66 | msgstr "Sélectionne le périphérique de son" | ||
67 | |||
68 | #: music_sampler/helpers.py:124 | ||
69 | msgid "List available sound devices" | ||
70 | msgstr "Affiche la liste des périphériques de son disponibles" | ||
71 | |||
72 | #: music_sampler/helpers.py:128 | ||
73 | msgid "Don't show warning when focus is lost" | ||
74 | msgstr "Ne pas afficher d'avertissement lorsque l'application perd le focus." | ||
75 | |||
76 | #: music_sampler/helpers.py:130 | ||
77 | msgid "Select another language" | ||
78 | msgstr "Choix d'une autre langue" | ||
79 | |||
80 | #: music_sampler/helpers.py:132 | ||
81 | msgid "" | ||
82 | "Kivy arguments. All arguments after this are interpreted " | ||
83 | "by Kivy. Pass \"-- --help\" to get Kivy's usage." | ||
84 | msgstr "Arguments à passer à la librairie Kivy" | ||
85 | |||
86 | #: music_sampler/helpers.py:170 | ||
87 | msgid "option '-v' can only be used in bundled package" | ||
88 | msgstr "L'argument '-V' ne peut être utilisé que dans la version compilée" | ||
89 | |||
90 | #: music_sampler/actions/interrupt_wait.py:5 | ||
91 | msgid "interrupt wait with id {}" | ||
92 | msgstr "Interrompre l'attente d'identifiant {}" | ||
93 | |||
94 | #: music_sampler/actions/pause.py:8 | ||
95 | msgid "pausing « {} »" | ||
96 | msgstr "mise en pause de « {} »" | ||
97 | |||
98 | #: music_sampler/actions/pause.py:10 | ||
99 | msgid "pausing all musics" | ||
100 | msgstr "mise en pause des musiques" | ||
101 | |||
102 | #: music_sampler/actions/play.py:50 | ||
103 | msgid "starting « {} » at volume {}%" | ||
104 | msgstr "lance « {} » au volume {}%" | ||
105 | |||
106 | #: music_sampler/actions/play.py:50 | ||
107 | msgid "starting all musics at volume {}%" | ||
108 | msgstr "lance toutes les musiques au volume {}%" | ||
109 | |||
110 | #: music_sampler/actions/play.py:50 | ||
111 | msgid "starting « {} » at {}s at volume {}%" | ||
112 | msgstr "lance « {} » à {}s au volume {}%" | ||
113 | |||
114 | #: music_sampler/actions/play.py:50 | ||
115 | msgid "starting all musics at {}s at volume {}%" | ||
116 | msgstr "lance toutes les musiques à {}s au volume {}%" | ||
117 | |||
118 | #: music_sampler/actions/play.py:50 | ||
119 | msgid "starting « {} » with {}s fade_in at volume {}%" | ||
120 | msgstr "lance « {} » avec un fondu de {}s au volume {}%" | ||
121 | |||
122 | #: music_sampler/actions/play.py:50 | ||
123 | msgid "starting all musics with {}s fade_in at volume {}%" | ||
124 | msgstr "lance toutes les musiques avec un fondu de {}s au volume {}%" | ||
125 | |||
126 | #: music_sampler/actions/play.py:50 | ||
127 | msgid "starting « {} » at {}s with {}s fade_in at volume {}%" | ||
128 | msgstr "lance « {} » à {}s avec un fondu de {}s au volume {}%" | ||
129 | |||
130 | #: music_sampler/actions/play.py:50 | ||
131 | msgid "starting all musics at {}s with {}s fade_in at volume {}%" | ||
132 | msgstr "lance toutes les musiques à {}s avec un fondu de {}s au volume {}%" | ||
133 | |||
134 | #: music_sampler/actions/play.py:50 | ||
135 | msgid "starting « {} » at volume {}% {} times" | ||
136 | msgstr "lance « {} » au volume {}% {} fois" | ||
137 | |||
138 | #: music_sampler/actions/play.py:50 | ||
139 | msgid "starting all musics at volume {}% {} times" | ||
140 | msgstr "lance toutes les musiques au volume {}% {} fois" | ||
141 | |||
142 | #: music_sampler/actions/play.py:50 | ||
143 | msgid "starting « {} » at {}s at volume {}% {} times" | ||
144 | msgstr "lance « {} » à {}s au volume {}% {} fois" | ||
145 | |||
146 | #: music_sampler/actions/play.py:50 | ||
147 | msgid "starting all musics at {}s at volume {}% {} times" | ||
148 | msgstr "lance toutes les musiques à {}s au volume {}% {} fois" | ||
149 | |||
150 | #: music_sampler/actions/play.py:50 | ||
151 | msgid "starting « {} » with {}s fade_in at volume {}% {} times" | ||
152 | msgstr "lance « {} » avec un fondu de {}s au volume {}% {} fois" | ||
153 | |||
154 | #: music_sampler/actions/play.py:50 | ||
155 | msgid "starting all musics with {}s fade_in at volume {}% {} times" | ||
156 | msgstr "lance toutes les musiques avec un fondu de {}s au volume {}% {} fois" | ||
157 | |||
158 | #: music_sampler/actions/play.py:50 | ||
159 | msgid "starting « {} » at {}s with {}s fade_in at volume {}% {} times" | ||
160 | msgstr "lance « {} » à {}s avec un fondu de {}s au volume {}% {} fois" | ||
161 | |||
162 | #: music_sampler/actions/play.py:50 | ||
163 | msgid "starting all musics at {}s with {}s fade_in at volume {}% {} times" | ||
164 | msgstr "lance toutes les musiques à {}s avec un fondu de {}s au volume {}% {} fois" | ||
165 | |||
166 | #: music_sampler/actions/play.py:50 | ||
167 | msgid "starting « {} » at volume {}% in loop" | ||
168 | msgstr "lance « {} » au volume {}% en boucle" | ||
169 | |||
170 | #: music_sampler/actions/play.py:50 | ||
171 | msgid "starting all musics at volume {}% in loop" | ||
172 | msgstr "lance toutes les musiques au volume {}% en boucle" | ||
173 | |||
174 | #: music_sampler/actions/play.py:50 | ||
175 | msgid "starting « {} » at {}s at volume {}% in loop" | ||
176 | msgstr "lance « {} » à {}s au volume {}% en boucle" | ||
177 | |||
178 | #: music_sampler/actions/play.py:50 | ||
179 | msgid "starting all musics at {}s at volume {}% in loop" | ||
180 | msgstr "lance toutes les musiques à {}s au volume {}% en boucle" | ||
181 | |||
182 | #: music_sampler/actions/play.py:50 | ||
183 | msgid "starting « {} » with {}s fade_in at volume {}% in loop" | ||
184 | msgstr "lance « {} » avec un fondu de {}s au volume {}% en boucle" | ||
185 | |||
186 | #: music_sampler/actions/play.py:50 | ||
187 | msgid "starting all musics with {}s fade_in at volume {}% in loop" | ||
188 | msgstr "lance toutes les musiques avec un fondu de {}s au volume {}% en boucle" | ||
189 | |||
190 | #: music_sampler/actions/play.py:50 | ||
191 | msgid "starting « {} » at {}s with {}s fade_in at volume {}% in loop" | ||
192 | msgstr "lance « {} » à {}s avec un fondu de {}s au volume {}% en boucle" | ||
193 | |||
194 | #: music_sampler/actions/play.py:50 | ||
195 | msgid "starting all musics at {}s with {}s fade_in at volume {}% in loop" | ||
196 | msgstr "lance toutes les musiques à {}s avec un fondu de {}s au volume {}% en boucle" | ||
197 | |||
198 | #: music_sampler/actions/play.py:50 | ||
199 | msgid "starting « {} » at volume {}% (restarting if already running)" | ||
200 | msgstr "lance « {} » au volume {}% (redémarre si déjà lancée)" | ||
201 | |||
202 | #: music_sampler/actions/play.py:50 | ||
203 | msgid "starting all musics at volume {}% (restarting if already running)" | ||
204 | msgstr "lance toutes les musiques au volume {}% (redémarre si déjà lancée)" | ||
205 | |||
206 | #: music_sampler/actions/play.py:50 | ||
207 | msgid "starting « {} » at {}s at volume {}% (restarting if already running)" | ||
208 | msgstr "lance « {} » à {}s au volume {}% (redémarre si déjà lancée)" | ||
209 | |||
210 | #: music_sampler/actions/play.py:50 | ||
211 | msgid "starting all musics at {}s at volume {}% (restarting if already running)" | ||
212 | msgstr "lance toutes les musiques à {}s au volume {}% (redémarre si déjà lancée)" | ||
213 | |||
214 | #: music_sampler/actions/play.py:50 | ||
215 | msgid "starting « {} » with {}s fade_in at volume {}% (restarting if already running)" | ||
216 | msgstr "lance « {} » avec un fondu de {}s au volume {}% (redémarre si déjà lancée)" | ||
217 | |||
218 | #: music_sampler/actions/play.py:50 | ||
219 | msgid "starting all musics with {}s fade_in at volume {}% (restarting if already running)" | ||
220 | msgstr "lance toutes les musiques avec un fondu de {}s au volume {}% (redémarre si déjà lancée)" | ||
221 | |||
222 | #: music_sampler/actions/play.py:50 | ||
223 | msgid "starting « {} » at {}s with {}s fade_in at volume {}% (restarting if already running)" | ||
224 | msgstr "lance « {} » à {}s avec un fondu de {}s au volume {}% (redémarre si déjà lancée)" | ||
225 | |||
226 | #: music_sampler/actions/play.py:50 | ||
227 | msgid "starting all musics at {}s with {}s fade_in at volume {}% (restarting if already running)" | ||
228 | msgstr "lance toutes les musiques à {}s avec un fondu de {}s au volume {}% (redémarre si déjà lancée)" | ||
229 | |||
230 | #: music_sampler/actions/play.py:50 | ||
231 | msgid "starting « {} » at volume {}% {} times (restarting if already running)" | ||
232 | msgstr "lance « {} » au volume {}% {} fois (redémarre si déjà lancée)" | ||
233 | |||
234 | #: music_sampler/actions/play.py:50 | ||
235 | msgid "starting all musics at volume {}% {} times (restarting if already running)" | ||
236 | msgstr "lance toutes les musiques au volume {}% {} fois (redémarre si déjà lancée)" | ||
237 | |||
238 | #: music_sampler/actions/play.py:50 | ||
239 | msgid "starting « {} » at {}s at volume {}% {} times (restarting if already running)" | ||
240 | msgstr "lance « {} » à {}s au volume {}% {} fois (redémarre si déjà lancée)" | ||
241 | |||
242 | #: music_sampler/actions/play.py:50 | ||
243 | msgid "starting all musics at {}s at volume {}% {} times (restarting if already running)" | ||
244 | msgstr "lance toutes les musiques à {}s au volume {}% {} fois (redémarre si déjà lancée)" | ||
245 | |||
246 | #: music_sampler/actions/play.py:50 | ||
247 | msgid "starting « {} » with {}s fade_in at volume {}% {} times (restarting if already running)" | ||
248 | msgstr "lance « {} » avec un fondu de {}s au volume {}% {} fois (redémarre si déjà lancée)" | ||
249 | |||
250 | #: music_sampler/actions/play.py:50 | ||
251 | msgid "starting all musics with {}s fade_in at volume {}% {} times (restarting if already running)" | ||
252 | msgstr "lance toutes les musiques avec un fondu de {}s au volume {}% {} fois (redémarre si déjà lancée)" | ||
253 | |||
254 | #: music_sampler/actions/play.py:50 | ||
255 | msgid "starting « {} » at {}s with {}s fade_in at volume {}% {} times (restarting if already running)" | ||
256 | msgstr "lance « {} » à {}s avec un fondu de {}s au volume {}% {} fois (redémarre si déjà lancée)" | ||
257 | |||
258 | #: music_sampler/actions/play.py:50 | ||
259 | msgid "starting all musics at {}s with {}s fade_in at volume {}% {} times (restarting if already running)" | ||
260 | msgstr "lance toutes les musiques à {}s avec un fondu de {}s au volume {}% {} fois (redémarre si déjà lancée)" | ||
261 | |||
262 | #: music_sampler/actions/play.py:50 | ||
263 | msgid "starting « {} » at volume {}% in loop (restarting if already running)" | ||
264 | msgstr "lance « {} » au volume {}% en boucle (redémarre si déjà lancée)" | ||
265 | |||
266 | #: music_sampler/actions/play.py:50 | ||
267 | msgid "starting all musics at volume {}% in loop (restarting if already running)" | ||
268 | msgstr "lance toutes les musiques au volume {}% en boucle (redémarre si déjà lancée)" | ||
269 | |||
270 | #: music_sampler/actions/play.py:50 | ||
271 | msgid "starting « {} » at {}s at volume {}% in loop (restarting if already running)" | ||
272 | msgstr "lance « {} » à {}s au volume {}% en boucle (redémarre si déjà lancée)" | ||
273 | |||
274 | #: music_sampler/actions/play.py:50 | ||
275 | msgid "starting all musics at {}s at volume {}% in loop (restarting if already running)" | ||
276 | msgstr "lance toutes les musiques à {}s au volume {}% en boucle (redémarre si déjà lancée)" | ||
277 | |||
278 | #: music_sampler/actions/play.py:50 | ||
279 | msgid "starting « {} » with {}s fade_in at volume {}% in loop (restarting if already running)" | ||
280 | msgstr "lance « {} » avec un fondu de {}s au volume {}% en boucle (redémarre si déjà lancée)" | ||
281 | |||
282 | #: music_sampler/actions/play.py:50 | ||
283 | msgid "starting all musics with {}s fade_in at volume {}% in loop (restarting if already running)" | ||
284 | msgstr "lance toutes les musiques avec un fondu de {}s au volume {}% en boucle (redémarre si déjà lancée)" | ||
285 | |||
286 | #: music_sampler/actions/play.py:50 | ||
287 | msgid "starting « {} » at {}s with {}s fade_in at volume {}% in loop (restarting if already running)" | ||
288 | msgstr "lance « {} » à {}s avec un fondu de {}s au volume {}% en boucle (redémarre si déjà lancée)" | ||
289 | |||
290 | #: music_sampler/actions/play.py:50 | ||
291 | msgid "starting all musics at {}s with {}s fade_in at volume {}% in loop (restarting if already running)" | ||
292 | msgstr "lance toutes les musiques à {}s avec un fondu de {}s au volume {}% en boucle (redémarre si déjà lancée)" | ||
293 | |||
294 | #: music_sampler/actions/run_command.py:15 | ||
295 | msgid "running command {}" | ||
296 | msgstr "lance la commande {}" | ||
297 | |||
298 | #: music_sampler/actions/run_command.py:15 | ||
299 | msgid "running command {} (waiting for its execution to finish)" | ||
300 | msgstr "lance la commande {} (attend la fin de son exécution)" | ||
301 | |||
302 | #: music_sampler/actions/seek.py:8 | ||
303 | msgid "moving music « {} » by {:+d}s" | ||
304 | msgstr "avance la musique « {} » de {:+d}s" | ||
305 | |||
306 | #: music_sampler/actions/seek.py:11 | ||
307 | msgid "moving all musics by {:+d}s" | ||
308 | msgstr "avance les musiques de {:+d}s" | ||
309 | |||
310 | #: music_sampler/actions/seek.py:15 | ||
311 | msgid "moving music « {} » to position {}s" | ||
312 | msgstr "avance la musique « {} » en position {}s" | ||
313 | |||
314 | #: music_sampler/actions/seek.py:18 | ||
315 | msgid "moving all musics to position {}s" | ||
316 | msgstr "avance les musiques en position {}s" | ||
317 | |||
318 | #: music_sampler/actions/stop.py:40 | ||
319 | msgid "stopping music « {} »" | ||
320 | msgstr "arrête la musique « {} »" | ||
321 | |||
322 | #: music_sampler/actions/stop.py:40 | ||
323 | msgid "stopping all musics" | ||
324 | msgstr "arrête toutes les musiques" | ||
325 | |||
326 | #: music_sampler/actions/stop.py:40 | ||
327 | msgid "stopping music « {} » with {}s fadeout" | ||
328 | msgstr "arrête la musique « {} » avec un fadeout de {}s" | ||
329 | |||
330 | #: music_sampler/actions/stop.py:40 | ||
331 | msgid "stopping all musics with {}s fadeout" | ||
332 | msgstr "arrête toutes les musiques avec un fadeout de {}s" | ||
333 | |||
334 | #: music_sampler/actions/stop.py:40 | ||
335 | msgid "stopping music « {} » with {}s fadeout (waiting the end of fadeout, with id {})" | ||
336 | msgstr "arrête la musique « {} » avec un fadeout de {}s (attend la fin du fadeout, avec l'identifiant {})" | ||
337 | |||
338 | #: music_sampler/actions/stop.py:40 | ||
339 | msgid "stopping all musics with {}s fadeout (waiting the end of fadeout, with id {})" | ||
340 | msgstr "arrête toutes les musiques avec un fadeout de {}s (attend la fin du fadeout, avec l'identifiant {})" | ||
341 | |||
342 | #: music_sampler/actions/stop.py:40 | ||
343 | msgid "stopping music « {} » with {}s fadeout (waiting the end of fadeout)" | ||
344 | msgstr "arrête la musique « {} » avec un fadeout de {}s (attend la fin du fadeout)" | ||
345 | |||
346 | #: music_sampler/actions/stop.py:40 | ||
347 | msgid "stopping all musics with {}s fadeout (waiting the end of fadeout)" | ||
348 | msgstr "arrête toutes les musiques avec un fadeout de {}s (attend la fin du fadeout)" | ||
349 | |||
350 | #: music_sampler/actions/unpause.py:8 | ||
351 | msgid "unpausing « {} »" | ||
352 | msgstr "reprend « {} »" | ||
353 | |||
354 | #: music_sampler/actions/unpause.py:10 | ||
355 | msgid "unpausing all musics" | ||
356 | msgstr "reprend toutes les musiques" | ||
357 | |||
358 | #: music_sampler/actions/volume.py:32 | ||
359 | msgid "{:+d}% to volume of « {} »" | ||
360 | msgstr "{:+d}% sur le volume de « {} »" | ||
361 | |||
362 | #: music_sampler/actions/volume.py:32 | ||
363 | msgid "{:+d}% to volume" | ||
364 | msgstr "{:+d}% sur le volume global" | ||
365 | |||
366 | #: music_sampler/actions/volume.py:32 | ||
367 | msgid "{:+d}% to volume of « {} » with {}s fade" | ||
368 | msgstr "{:+d}% sur le volume de « {} » avec {}s de fade" | ||
369 | |||
370 | #: music_sampler/actions/volume.py:32 | ||
371 | msgid "{:+d}% to volume with {}s fade" | ||
372 | msgstr "{:+d}% sur le volume global avec {}s de fade" | ||
373 | |||
374 | #: music_sampler/actions/volume.py:32 | ||
375 | msgid "setting volume of « {} » to {}%" | ||
376 | msgstr "changement du volume de « {} » à {}%" | ||
377 | |||
378 | #: music_sampler/actions/volume.py:32 | ||
379 | msgid "setting volume to {}%" | ||
380 | msgstr "changement du volume global à {}%" | ||
381 | |||
382 | #: music_sampler/actions/volume.py:32 | ||
383 | msgid "setting volume of « {} » to {}% with {}s fade" | ||
384 | msgstr "changement du volume de « {} » à {}% avec {}s de fade" | ||
385 | |||
386 | #: music_sampler/actions/volume.py:32 | ||
387 | msgid "setting volume to {}% with {}s fade" | ||
388 | msgstr "changement du volume global à {}% avec {}s de fade" | ||
389 | |||
390 | #: music_sampler/actions/wait.py:36 | ||
391 | msgid "waiting {}s" | ||
392 | msgstr "attend {}s" | ||
393 | |||
394 | #: music_sampler/actions/wait.py:36 | ||
395 | msgid "waiting the end of « {} »" | ||
396 | msgstr "attend la fin de « {} »" | ||
397 | |||
398 | #: music_sampler/actions/wait.py:36 | ||
399 | msgid "waiting the end of « {} » + {}s" | ||
400 | msgstr "attend la fin de « {} » + {}s" | ||
401 | |||
402 | #: music_sampler/actions/wait.py:36 | ||
403 | msgid "waiting {}s (setting id = {})" | ||
404 | msgstr "attend {}s (définit l'identifiant {})" | ||
405 | |||
406 | #: music_sampler/actions/wait.py:36 | ||
407 | msgid "waiting the end of « {} » (setting id = {})" | ||
408 | msgstr "attend la fin de « {} » (définit l'identifiant {})" | ||
409 | |||
410 | #: music_sampler/actions/wait.py:36 | ||
411 | msgid "waiting the end of « {} » + {}s (setting id = {})" | ||
412 | msgstr "attend la fin de « {} » + {}s (définit l'identifiant {})" | ||
413 | |||
414 | #: music_sampler/app_blocks/actionlist.py:18 | ||
415 | msgid "actions linked to key {}:" | ||
416 | msgstr "actions liées à la touche {} :" | ||
417 | |||
418 | #: music_sampler/music_sampler.kv:93 | ||
419 | msgid "Focus lost!" | ||
420 | msgstr "Focus perdu !" | ||
421 | |||
422 | #: music_sampler/music_sampler.kv:369 | ||
423 | msgid "volume: {}%" | ||
424 | msgstr "volume : {}%" | ||
diff --git a/music_sampler/music_sampler.kv b/music_sampler/music_sampler.kv index ae5dbd7..0432e14 100644 --- a/music_sampler/music_sampler.kv +++ b/music_sampler/music_sampler.kv | |||
@@ -90,7 +90,7 @@ | |||
90 | font_name: "Ubuntu" | 90 | font_name: "Ubuntu" |
91 | font_size: self.parent and 2 * self.parent.key_size or 42 | 91 | font_size: self.parent and 2 * self.parent.key_size or 42 |
92 | text_size: self.size | 92 | text_size: self.size |
93 | text: "Focus lost!" | 93 | text: _("Focus lost!") |
94 | 94 | ||
95 | <Screen>: | 95 | <Screen>: |
96 | canvas: | 96 | canvas: |
@@ -366,7 +366,7 @@ | |||
366 | font_name: "Ubuntu" | 366 | font_name: "Ubuntu" |
367 | font_size: self.parent.font_size or 10 | 367 | font_size: self.parent.font_size or 10 |
368 | color: 0, 0, 0, 1 | 368 | color: 0, 0, 0, 1 |
369 | text: "volume: {}%".format(self.parent.master_volume) | 369 | text: _("volume: {}%").format(self.parent.master_volume) |
370 | valign: "top" | 370 | valign: "top" |
371 | size_hint: None, None | 371 | size_hint: None, None |
372 | size: self.texture_size[0], self.texture_size[1] | 372 | size: self.texture_size[0], self.texture_size[1] |