Skip to content

Commit a850ae3

Browse files
authored
feat(translations): support for missing params (crowdin#161)
1 parent c4e4d9e commit a850ae3

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

crowdin_api/api_resources/translations/enums.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
class PreTranslationApplyMethod(Enum):
55
TM = "tm"
66
MT = "mt"
7+
AI = "ai"
78

89

910
class PreTranslationAutoApproveOption(Enum):

crowdin_api/api_resources/translations/resource.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from crowdin_api.api_resources.abstract.resources import BaseResource
44
from crowdin_api.api_resources.enums import ExportProjectTranslationFormat
5+
from crowdin_api.api_resources.translations.types import FallbackLanguages
56
from crowdin_api.api_resources.translations.enums import (
67
CharTransformation,
78
PreTranslationApplyMethod,
@@ -54,10 +55,13 @@ def apply_pre_translation(
5455
projectId: Optional[int] = None,
5556
method: Optional[PreTranslationApplyMethod] = None,
5657
engineId: Optional[int] = None,
58+
aiPromptId: Optional[int] = None,
5759
autoApproveOption: Optional[PreTranslationAutoApproveOption] = None,
5860
duplicateTranslations: Optional[bool] = None,
61+
skipApprovedTranslations: Optional[bool] = None,
5962
translateUntranslatedOnly: Optional[bool] = None,
6063
translateWithPerfectMatchOnly: Optional[bool] = None,
64+
fallbackLanguages: Optional[Iterable[FallbackLanguages]] = None,
6165
labelIds: Optional[Iterable[int]] = None,
6266
excludeLabelIds: Optional[Iterable[int]] = None,
6367
):
@@ -67,6 +71,9 @@ def apply_pre_translation(
6771
Link to documentation:
6872
https://developer.crowdin.com/api/v2/#operation/api.projects.pre-translations.post
6973
"""
74+
if fallbackLanguages is None:
75+
fallbackLanguages = []
76+
7077
if labelIds is None:
7178
labelIds = []
7279

@@ -83,10 +90,13 @@ def apply_pre_translation(
8390
"fileIds": fileIds,
8491
"method": method,
8592
"engineId": engineId,
93+
"aiPromptId": aiPromptId,
8694
"autoApproveOption": autoApproveOption,
8795
"duplicateTranslations": duplicateTranslations,
96+
"skipApprovedTranslations": skipApprovedTranslations,
8897
"translateUntranslatedOnly": translateUntranslatedOnly,
8998
"translateWithPerfectMatchOnly": translateWithPerfectMatchOnly,
99+
"fallbackLanguages": fallbackLanguages,
90100
"labelIds": labelIds,
91101
"excludeLabelIds": excludeLabelIds,
92102
},

crowdin_api/api_resources/translations/tests/test_translations_resources.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,13 @@ def test_list_project_branches(self, m_request, base_absolut_url):
4848
"fileIds": [1, 2],
4949
"method": None,
5050
"engineId": None,
51+
"aiPromptId": None,
5152
"autoApproveOption": None,
5253
"duplicateTranslations": None,
54+
"skipApprovedTranslations": None,
5355
"translateUntranslatedOnly": None,
5456
"translateWithPerfectMatchOnly": None,
57+
"fallbackLanguages": [],
5558
"labelIds": [],
5659
"excludeLabelIds": [],
5760
},
@@ -62,10 +65,13 @@ def test_list_project_branches(self, m_request, base_absolut_url):
6265
"fileIds": [1, 2],
6366
"method": PreTranslationApplyMethod.MT,
6467
"engineId": 3,
68+
"aiPromptId": 0,
6569
"autoApproveOption": PreTranslationAutoApproveOption.ALL,
6670
"duplicateTranslations": False,
71+
"skipApprovedTranslations": False,
6772
"translateUntranslatedOnly": False,
6873
"translateWithPerfectMatchOnly": False,
74+
"fallbackLanguages": ["lang"],
6975
"labelIds": [1],
7076
"excludeLabelIds": [1],
7177
},
@@ -74,10 +80,13 @@ def test_list_project_branches(self, m_request, base_absolut_url):
7480
"fileIds": [1, 2],
7581
"method": PreTranslationApplyMethod.MT,
7682
"engineId": 3,
83+
"aiPromptId": 0,
7784
"autoApproveOption": PreTranslationAutoApproveOption.ALL,
7885
"duplicateTranslations": False,
86+
"skipApprovedTranslations": False,
7987
"translateUntranslatedOnly": False,
8088
"translateWithPerfectMatchOnly": False,
89+
"fallbackLanguages": ["lang"],
8190
"labelIds": [1],
8291
"excludeLabelIds": [1],
8392
},
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from typing import Iterable
2+
3+
from crowdin_api.typing import TypedDict
4+
5+
6+
class FallbackLanguages(TypedDict):
7+
languageId: Iterable[str]

0 commit comments

Comments
 (0)