Skip to content

Commit 1fa4b5b

Browse files
authored
feat: add addToTm parameter support for Upload Translation API (#185)
1 parent bd7a021 commit 1fa4b5b

File tree

3 files changed

+73
-11
lines changed

3 files changed

+73
-11
lines changed

crowdin_api/api_resources/translations/resource.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from crowdin_api.api_resources.translations.types import (
66
FallbackLanguages,
77
EditPreTranslationScheme,
8+
UploadTranslationRequest,
89
)
910
from crowdin_api.api_resources.translations.enums import (
1011
CharTransformation,
@@ -325,26 +326,29 @@ def upload_translation(
325326
importEqSuggestions: Optional[bool] = None,
326327
autoApproveImported: Optional[bool] = None,
327328
translateHidden: Optional[bool] = None,
329+
addToTm: Optional[bool] = None,
328330
):
329331
"""
330332
Upload Translations.
331333
332334
Link to documentation:
333335
https://developer.crowdin.com/api/v2/#operation/api.projects.translations.postOnLanguage
334336
"""
335-
336337
projectId = projectId or self.get_project_id()
337338

339+
request_data: UploadTranslationRequest = {
340+
"storageId": storageId,
341+
"fileId": fileId,
342+
"importEqSuggestions": importEqSuggestions,
343+
"autoApproveImported": autoApproveImported,
344+
"translateHidden": translateHidden,
345+
"addToTm": addToTm,
346+
}
347+
338348
return self.requester.request(
339349
method="post",
340350
path=f"projects/{projectId}/translations/{languageId}",
341-
request_data={
342-
"storageId": storageId,
343-
"fileId": fileId,
344-
"importEqSuggestions": importEqSuggestions,
345-
"autoApproveImported": autoApproveImported,
346-
"translateHidden": translateHidden,
347-
},
351+
request_data=request_data,
348352
)
349353

350354
def download_project_translations(

crowdin_api/api_resources/translations/tests/test_translations_resources.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@ def test_build_pseudo_project_translation(
322322
"importEqSuggestions": None,
323323
"autoApproveImported": None,
324324
"translateHidden": None,
325+
"addToTm": None,
325326
},
326327
),
327328
(
@@ -331,13 +332,63 @@ def test_build_pseudo_project_translation(
331332
"importEqSuggestions": False,
332333
"autoApproveImported": False,
333334
"translateHidden": False,
335+
"addToTm": False,
334336
},
335337
{
336338
"storageId": 1,
337339
"fileId": 2,
338340
"importEqSuggestions": False,
339341
"autoApproveImported": False,
340342
"translateHidden": False,
343+
"addToTm": False,
344+
},
345+
),
346+
(
347+
{
348+
"storageId": 1,
349+
"fileId": 2,
350+
"importEqSuggestions": True,
351+
"autoApproveImported": True,
352+
"translateHidden": True,
353+
"addToTm": True,
354+
},
355+
{
356+
"storageId": 1,
357+
"fileId": 2,
358+
"importEqSuggestions": True,
359+
"autoApproveImported": True,
360+
"translateHidden": True,
361+
"addToTm": True,
362+
},
363+
),
364+
(
365+
{
366+
"storageId": 1,
367+
"fileId": 2,
368+
"addToTm": False,
369+
},
370+
{
371+
"storageId": 1,
372+
"fileId": 2,
373+
"importEqSuggestions": None,
374+
"autoApproveImported": None,
375+
"translateHidden": None,
376+
"addToTm": False,
377+
},
378+
),
379+
(
380+
{
381+
"storageId": 1,
382+
"fileId": 2,
383+
"addToTm": True,
384+
},
385+
{
386+
"storageId": 1,
387+
"fileId": 2,
388+
"importEqSuggestions": None,
389+
"autoApproveImported": None,
390+
"translateHidden": None,
391+
"addToTm": True,
341392
},
342393
),
343394
),

crowdin_api/api_resources/translations/types.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
from typing import Iterable
2-
1+
from typing import Iterable, Optional
32
from crowdin_api.typing import TypedDict
4-
53
from crowdin_api.api_resources.translations.enums import PreTranslationEditOperation
64

75

@@ -13,3 +11,12 @@ class EditPreTranslationScheme(TypedDict):
1311
op: PreTranslationEditOperation
1412
path: str
1513
value: str
14+
15+
16+
class UploadTranslationRequest(TypedDict):
17+
storageId: int
18+
fileId: int
19+
importEqSuggestions: Optional[bool]
20+
autoApproveImported: Optional[bool]
21+
translateHidden: Optional[bool]
22+
addToTm: Optional[bool]

0 commit comments

Comments
 (0)