Skip to content

Commit cb3846d

Browse files
committed
Update gTTS; fix failing unit tests
1 parent 94d0eb7 commit cb3846d

21 files changed

+840
-134
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
PROJECT_SHORT = chinese
1717
PROJECT_LONG = chinese-support-redux
18-
VERSION = 0.14.0
18+
VERSION = 0.14.2
1919
XDG_DATA_HOME ?= $(HOME)/.local/share
2020
ADDON_PATH = "$(XDG_DATA_HOME)/Anki2/addons21/$(PROJECT_LONG)"
2121
ZIP_NAME = $(PROJECT_LONG)-v$(VERSION).zip

chinese/_version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.14.0'
1+
__version__ = '0.14.2'

chinese/about.py

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def showAbout():
3333
contributors = [
3434
'Alex Griffin',
3535
'Chris Hatch',
36+
'Joe Minicucci',
3637
'Roland Sieker',
3738
'Thomas TEMPÉ',
3839
]

chinese/config.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"firstRun": true,
3-
"version": "0.14.0",
3+
"version": "0.14.2",
44
"enabledModels": [],
5-
"speech": "google|zh-cn",
5+
"speech": "google|zh-CN",
66
"target": "pinyin",
77
"max_examples": -1,
88
"fields": {

chinese/gui.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141

4242
SPEECH_ENGINES = {
4343
'Baidu Translate': 'baidu|zh',
44-
'Google Mandarin (PRC)': 'google|zh-cn',
45-
'Google Mandarin (Taiwan)': 'google|zh-tw',
44+
'Google Mandarin (PRC)': 'google|zh-CN',
45+
'Google Mandarin (Taiwan)': 'google|zh-TW',
4646
'Amazon Polly' : 'aws|Zhiyu',
4747
'Disabled': None,
4848
}

chinese/lib/gtts/lang.py

+53-98
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
# -*- coding: utf-8 -*-
2+
from gtts.langs import _main_langs
3+
from warnings import warn
24
import logging
35

46
__all__ = ['tts_langs']
@@ -14,13 +16,13 @@ def tts_langs():
1416
Returns:
1517
dict: A dictionary of the type `{ '<lang>': '<name>'}`
1618
17-
Where `<lang>` is an IETF language tag such as `en` or `pt-br`,
19+
Where `<lang>` is an IETF language tag such as `en` or `zh-TW`,
1820
and `<name>` is the full English name of the language, such as
19-
`English` or `Portuguese (Brazil)`.
21+
`English` or `Chinese (Mandarin/Taiwan)`.
2022
2123
The dictionary returned combines languages from two origins:
2224
23-
- Languages fetched from Google Translate
25+
- Languages fetched from Google Translate (pre-generated in :mod:`gtts.langs`)
2426
- Languages that are undocumented variations that were observed to work and
2527
present different dialects or accents.
2628
@@ -32,112 +34,65 @@ def tts_langs():
3234
return langs
3335

3436

35-
def _main_langs():
36-
"""Define the main languages.
37+
def _extra_langs():
38+
"""Define extra languages.
3739
3840
Returns:
39-
dict: A dictionnary of the main languages extracted from
40-
Google Translate.
41+
dict: A dictionnary of extra languages manually defined.
42+
43+
Variations of the ones generated in `_main_langs`,
44+
observed to provide different dialects or accents or
45+
just simply accepted by the Google Translate Text-to-Speech API.
4146
4247
"""
4348
return {
44-
'af': 'Afrikaans',
45-
'ar': 'Arabic',
46-
'bn': 'Bengali',
47-
'bs': 'Bosnian',
48-
'ca': 'Catalan',
49-
'cs': 'Czech',
50-
'cy': 'Welsh',
51-
'da': 'Danish',
52-
'de': 'German',
53-
'el': 'Greek',
54-
'en': 'English',
55-
'eo': 'Esperanto',
56-
'es': 'Spanish',
57-
'et': 'Estonian',
58-
'fi': 'Finnish',
59-
'fr': 'French',
60-
'gu': 'Gujarati',
61-
'hi': 'Hindi',
62-
'hr': 'Croatian',
63-
'hu': 'Hungarian',
64-
'hy': 'Armenian',
65-
'id': 'Indonesian',
66-
'is': 'Icelandic',
67-
'it': 'Italian',
68-
'ja': 'Japanese',
69-
'jw': 'Javanese',
70-
'km': 'Khmer',
71-
'kn': 'Kannada',
72-
'ko': 'Korean',
73-
'la': 'Latin',
74-
'lv': 'Latvian',
75-
'mk': 'Macedonian',
76-
'ml': 'Malayalam',
77-
'mr': 'Marathi',
78-
'my': 'Myanmar (Burmese)',
79-
'ne': 'Nepali',
80-
'nl': 'Dutch',
81-
'no': 'Norwegian',
82-
'pl': 'Polish',
83-
'pt': 'Portuguese',
84-
'ro': 'Romanian',
85-
'ru': 'Russian',
86-
'si': 'Sinhala',
87-
'sk': 'Slovak',
88-
'sq': 'Albanian',
89-
'sr': 'Serbian',
90-
'su': 'Sundanese',
91-
'sv': 'Swedish',
92-
'sw': 'Swahili',
93-
'ta': 'Tamil',
94-
'te': 'Telugu',
95-
'th': 'Thai',
96-
'tl': 'Filipino',
97-
'tr': 'Turkish',
98-
'uk': 'Ukrainian',
99-
'ur': 'Urdu',
100-
'vi': 'Vietnamese',
101-
'zh-CN': 'Chinese'
49+
# Chinese
50+
'zh-TW': 'Chinese (Mandarin/Taiwan)',
51+
'zh': 'Chinese (Mandarin)'
10252
}
10353

10454

105-
def _extra_langs():
106-
"""Define extra languages.
55+
def _fallback_deprecated_lang(lang):
56+
"""Languages Google Text-to-Speech used to support.
57+
58+
Language tags that don't work anymore, but that can
59+
fallback to a more general language code to maintain
60+
compatibility.
61+
62+
Args:
63+
lang (string): The language tag.
10764
10865
Returns:
109-
dict: A dictionnary of extra languages manually defined.
66+
string: The language tag, as-is if not deprecated,
67+
or a fallack if it exits.
11068
111-
Variations of the ones fetched by `_main_langs`,
112-
observed to provide different dialects or accents or
113-
just simply accepted by the Google Translate Text-to-Speech API.
69+
Example:
70+
``en-GB`` returns ``en``.
71+
``en-gb`` returns ``en``.
11472
11573
"""
116-
return {
117-
# Chinese
118-
'zh-cn': 'Chinese (Mandarin/China)',
119-
'zh-tw': 'Chinese (Mandarin/Taiwan)',
120-
# English
121-
'en-us': 'English (US)',
122-
'en-ca': 'English (Canada)',
123-
'en-uk': 'English (UK)',
124-
'en-gb': 'English (UK)',
125-
'en-au': 'English (Australia)',
126-
'en-gh': 'English (Ghana)',
127-
'en-in': 'English (India)',
128-
'en-ie': 'English (Ireland)',
129-
'en-nz': 'English (New Zealand)',
130-
'en-ng': 'English (Nigeria)',
131-
'en-ph': 'English (Philippines)',
132-
'en-za': 'English (South Africa)',
133-
'en-tz': 'English (Tanzania)',
134-
# French
135-
'fr-ca': 'French (Canada)',
136-
'fr-fr': 'French (France)',
137-
# Portuguese
138-
'pt-br': 'Portuguese (Brazil)',
139-
'pt-pt': 'Portuguese (Portugal)',
140-
# Spanish
141-
'es-es': 'Spanish (Spain)',
142-
'es-us': 'Spanish (United States)'
74+
75+
deprecated = {
76+
# '<fallback>': [<list of deprecated langs>]
77+
'en': ['en-us', 'en-ca', 'en-uk', 'en-gb', 'en-au', 'en-gh', 'en-in',
78+
'en-ie', 'en-nz', 'en-ng', 'en-ph', 'en-za', 'en-tz'],
79+
'fr': ['fr-ca', 'fr-fr'],
80+
'pt': ['pt-br', 'pt-pt'],
81+
'es': ['es-es', 'es-us'],
82+
'zh-CN': ['zh-cn'],
83+
'zh-TW': ['zh-tw'],
14384
}
85+
86+
for fallback_lang, deprecated_langs in deprecated.items():
87+
if lang.lower() in deprecated_langs:
88+
msg = (
89+
"'{}' has been deprecated, falling back to '{}'. "
90+
"This fallback will be removed in a future version."
91+
).format(lang, fallback_lang)
92+
93+
warn(msg, DeprecationWarning)
94+
log.warning(msg)
95+
96+
return fallback_lang
97+
98+
return lang

chinese/lib/gtts/langs.py

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Note: this file is generated
2+
_langs = {
3+
"af": "Afrikaans",
4+
"ar": "Arabic",
5+
"bn": "Bengali",
6+
"bs": "Bosnian",
7+
"ca": "Catalan",
8+
"cs": "Czech",
9+
"cy": "Welsh",
10+
"da": "Danish",
11+
"de": "German",
12+
"el": "Greek",
13+
"en": "English",
14+
"eo": "Esperanto",
15+
"es": "Spanish",
16+
"et": "Estonian",
17+
"fi": "Finnish",
18+
"fr": "French",
19+
"gu": "Gujarati",
20+
"hi": "Hindi",
21+
"hr": "Croatian",
22+
"hu": "Hungarian",
23+
"hy": "Armenian",
24+
"id": "Indonesian",
25+
"is": "Icelandic",
26+
"it": "Italian",
27+
"ja": "Japanese",
28+
"jw": "Javanese",
29+
"km": "Khmer",
30+
"kn": "Kannada",
31+
"ko": "Korean",
32+
"la": "Latin",
33+
"lv": "Latvian",
34+
"mk": "Macedonian",
35+
"ml": "Malayalam",
36+
"mr": "Marathi",
37+
"my": "Myanmar (Burmese)",
38+
"ne": "Nepali",
39+
"nl": "Dutch",
40+
"no": "Norwegian",
41+
"pl": "Polish",
42+
"pt": "Portuguese",
43+
"ro": "Romanian",
44+
"ru": "Russian",
45+
"si": "Sinhala",
46+
"sk": "Slovak",
47+
"sq": "Albanian",
48+
"sr": "Serbian",
49+
"su": "Sundanese",
50+
"sv": "Swedish",
51+
"sw": "Swahili",
52+
"ta": "Tamil",
53+
"te": "Telugu",
54+
"th": "Thai",
55+
"tl": "Filipino",
56+
"tr": "Turkish",
57+
"uk": "Ukrainian",
58+
"ur": "Urdu",
59+
"vi": "Vietnamese",
60+
"zh-CN": "Chinese"
61+
}
62+
63+
def _main_langs():
64+
return _langs

chinese/lib/gtts/tests/__init__.py

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Can you make pink a little more pinkish can you make pink a little more pinkish, nor can you make the font bigger?
2+
How much will it cost the website doesn't have the theme i was going for.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
这是一个三岁的小孩
2+
在讲述她从一系列照片里看到的东西。
3+
对这个世界, 她也许还有很多要学的东西,
4+
但在一个重要的任务上, 她已经是专家了:
5+
去理解她所看到的东西。

0 commit comments

Comments
 (0)