@crowdin/n8n-nodes-crowdin 0.24.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/nodes/Crowdin/properties/crowdin/fileBased/ai.js +115 -8
  2. package/dist/nodes/Crowdin/properties/crowdin/fileBased/ai.js.map +1 -1
  3. package/dist/nodes/Crowdin/properties/crowdin/fileBased/applications.js +20 -20
  4. package/dist/nodes/Crowdin/properties/crowdin/fileBased/applications.js.map +1 -1
  5. package/dist/nodes/Crowdin/properties/crowdin/fileBased/projects.js +588 -0
  6. package/dist/nodes/Crowdin/properties/crowdin/fileBased/projects.js.map +1 -1
  7. package/dist/nodes/Crowdin/properties/crowdin/fileBased/sourceFiles.js +614 -0
  8. package/dist/nodes/Crowdin/properties/crowdin/fileBased/sourceFiles.js.map +1 -1
  9. package/dist/nodes/Crowdin/properties/crowdin/fileBased/translations.js +582 -682
  10. package/dist/nodes/Crowdin/properties/crowdin/fileBased/translations.js.map +1 -1
  11. package/dist/nodes/Crowdin/properties/crowdin/stringBased/ai.js +115 -8
  12. package/dist/nodes/Crowdin/properties/crowdin/stringBased/ai.js.map +1 -1
  13. package/dist/nodes/Crowdin/properties/crowdin/stringBased/applications.js +20 -20
  14. package/dist/nodes/Crowdin/properties/crowdin/stringBased/applications.js.map +1 -1
  15. package/dist/nodes/Crowdin/properties/crowdin/stringBased/translations.js +555 -619
  16. package/dist/nodes/Crowdin/properties/crowdin/stringBased/translations.js.map +1 -1
  17. package/dist/nodes/Crowdin/properties/enterprise/fileBased/ai.js +115 -8
  18. package/dist/nodes/Crowdin/properties/enterprise/fileBased/ai.js.map +1 -1
  19. package/dist/nodes/Crowdin/properties/enterprise/fileBased/applications.js +14 -14
  20. package/dist/nodes/Crowdin/properties/enterprise/fileBased/applications.js.map +1 -1
  21. package/dist/nodes/Crowdin/properties/enterprise/fileBased/projectsAndGroups.js +588 -0
  22. package/dist/nodes/Crowdin/properties/enterprise/fileBased/projectsAndGroups.js.map +1 -1
  23. package/dist/nodes/Crowdin/properties/enterprise/fileBased/sourceFiles.js +614 -0
  24. package/dist/nodes/Crowdin/properties/enterprise/fileBased/sourceFiles.js.map +1 -1
  25. package/dist/nodes/Crowdin/properties/enterprise/fileBased/tasks.js +84 -0
  26. package/dist/nodes/Crowdin/properties/enterprise/fileBased/tasks.js.map +1 -1
  27. package/dist/nodes/Crowdin/properties/enterprise/fileBased/translations.js +578 -680
  28. package/dist/nodes/Crowdin/properties/enterprise/fileBased/translations.js.map +1 -1
  29. package/dist/nodes/Crowdin/properties/enterprise/stringBased/ai.js +115 -8
  30. package/dist/nodes/Crowdin/properties/enterprise/stringBased/ai.js.map +1 -1
  31. package/dist/nodes/Crowdin/properties/enterprise/stringBased/applications.js +14 -14
  32. package/dist/nodes/Crowdin/properties/enterprise/stringBased/applications.js.map +1 -1
  33. package/dist/nodes/Crowdin/properties/enterprise/stringBased/tasks.js +84 -0
  34. package/dist/nodes/Crowdin/properties/enterprise/stringBased/tasks.js.map +1 -1
  35. package/dist/nodes/Crowdin/properties/enterprise/stringBased/translations.js +552 -618
  36. package/dist/nodes/Crowdin/properties/enterprise/stringBased/translations.js.map +1 -1
  37. package/dist/package.json +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +1 -1
@@ -1761,365 +1761,11 @@ exports.translationsProperties = [
1761
1761
  }
1762
1762
  },
1763
1763
  {
1764
- displayName: 'Language Ids',
1765
- required: true,
1766
- name: 'languageIds',
1767
- type: 'multiOptions',
1768
- default: [],
1769
- description: 'Set of languages to which auto-translation should be applied. Get via [List Supported Languages](#operation/api.languages.getMany)',
1770
- routing: {
1771
- send: {
1772
- property: 'languageIds',
1773
- propertyInDotNotation: false,
1774
- type: 'body',
1775
- value: '={{ $value }}'
1776
- }
1777
- },
1778
- displayOptions: {
1779
- show: {
1780
- resource: [
1781
- 'translations'
1782
- ],
1783
- operation: [
1784
- 'api.projects.pre-translations.post'
1785
- ]
1786
- }
1787
- },
1788
- typeOptions: {
1789
- loadOptionsMethod: 'getLanguagesMulti'
1790
- }
1791
- },
1792
- {
1793
- displayName: 'Branch Ids',
1794
- name: 'branchIds',
1795
- type: 'multiOptions',
1796
- default: [],
1797
- description: 'Branches array that should be translated',
1798
- routing: {
1799
- send: {
1800
- property: 'branchIds',
1801
- propertyInDotNotation: false,
1802
- type: 'body',
1803
- value: '={{ $value }}'
1804
- }
1805
- },
1806
- displayOptions: {
1807
- show: {
1808
- resource: [
1809
- 'translations'
1810
- ],
1811
- operation: [
1812
- 'api.projects.pre-translations.post'
1813
- ]
1814
- }
1815
- },
1816
- typeOptions: {
1817
- loadOptionsMethod: 'getBranchesMulti',
1818
- loadOptionsDependsOn: [
1819
- 'projectId'
1820
- ]
1821
- }
1822
- },
1823
- {
1824
- displayName: 'Method',
1825
- name: 'method',
1826
- type: 'options',
1827
- default: '',
1828
- description: 'Defines auto-translation method. Available values:\n- \'tm\' – auto-translation via Translation Memory\n- \'mt\' – auto-translation via Machine Translation. \'mt\' should be used with `engineId` parameter\n- \'ai\' – auto-translation via AI. \'ai\' should be used with `aiPromptId` parameter',
1829
- options: [
1830
- {
1831
- name: '-',
1832
- value: ''
1833
- },
1834
- {
1835
- name: 'tm',
1836
- value: 'tm'
1837
- },
1838
- {
1839
- name: 'mt',
1840
- value: 'mt'
1841
- },
1842
- {
1843
- name: 'ai',
1844
- value: 'ai'
1845
- }
1846
- ],
1847
- routing: {
1848
- send: {
1849
- property: 'method',
1850
- propertyInDotNotation: false,
1851
- type: 'body',
1852
- value: '={{ $value || undefined }}'
1853
- }
1854
- },
1855
- displayOptions: {
1856
- show: {
1857
- resource: [
1858
- 'translations'
1859
- ],
1860
- operation: [
1861
- 'api.projects.pre-translations.post'
1862
- ]
1863
- }
1864
- }
1865
- },
1866
- {
1867
- displayName: 'Priority',
1868
- name: 'priority',
1869
- type: 'options',
1870
- default: '',
1871
- description: undefined,
1872
- options: [
1873
- {
1874
- name: '-',
1875
- value: ''
1876
- },
1877
- {
1878
- name: 'low',
1879
- value: 'low'
1880
- },
1881
- {
1882
- name: 'normal',
1883
- value: 'normal'
1884
- },
1885
- {
1886
- name: 'high',
1887
- value: 'high'
1888
- }
1889
- ],
1890
- routing: {
1891
- send: {
1892
- property: 'priority',
1893
- propertyInDotNotation: false,
1894
- type: 'body',
1895
- value: '={{ $value || undefined }}'
1896
- }
1897
- },
1898
- displayOptions: {
1899
- show: {
1900
- resource: [
1901
- 'translations'
1902
- ],
1903
- operation: [
1904
- 'api.projects.pre-translations.post'
1905
- ]
1906
- }
1907
- }
1908
- },
1909
- {
1910
- displayName: 'Engine Id',
1911
- name: 'engineId',
1912
- type: 'options',
1913
- default: '',
1914
- description: 'Machine Translation engine Identifier. Get via [List MTs](#operation/api.mts.getMany)',
1915
- routing: {
1916
- send: {
1917
- property: 'engineId',
1918
- propertyInDotNotation: false,
1919
- type: 'body',
1920
- value: '={{ typeof $value === \'number\' ? $value : undefined }}'
1921
- }
1922
- },
1923
- displayOptions: {
1924
- show: {
1925
- resource: [
1926
- 'translations'
1927
- ],
1928
- operation: [
1929
- 'api.projects.pre-translations.post'
1930
- ]
1931
- }
1932
- },
1933
- typeOptions: {
1934
- loadOptionsMethod: 'getMTEngines'
1935
- }
1936
- },
1937
- {
1938
- displayName: 'Ai Prompt Id',
1939
- name: 'aiPromptId',
1940
- type: 'options',
1941
- default: '',
1942
- description: 'AI Prompt Identifier. Get via [List AI Prompts](#operation/api.ai.prompts.getMany)',
1943
- routing: {
1944
- send: {
1945
- property: 'aiPromptId',
1946
- propertyInDotNotation: false,
1947
- type: 'body',
1948
- value: '={{ typeof $value === \'number\' ? $value : undefined }}'
1949
- }
1950
- },
1951
- displayOptions: {
1952
- show: {
1953
- resource: [
1954
- 'translations'
1955
- ],
1956
- operation: [
1957
- 'api.projects.pre-translations.post'
1958
- ]
1959
- }
1960
- },
1961
- typeOptions: {
1962
- loadOptionsMethod: 'getAiPrompts'
1963
- }
1964
- },
1965
- {
1966
- displayName: 'Auto Approve Option',
1967
- name: 'autoApproveOption',
1968
- type: 'options',
1969
- default: '',
1970
- description: 'Defines which translations added by TM auto-translation should be auto-approved. Available values:\n- \'all\' – all\n- \'perfectMatchOnly\' – with perfect TM match\n- \'exceptAutoSubstituted\' – all (skip auto-substituted suggestions)\n- \'perfectMatchApprovedOnly\' - with perfect TM match (approved previously)\n- \'none\' – no auto-approve',
1971
- options: [
1972
- {
1973
- name: '-',
1974
- value: ''
1975
- },
1976
- {
1977
- name: 'all',
1978
- value: 'all'
1979
- },
1980
- {
1981
- name: 'exceptAutoSubstituted',
1982
- value: 'exceptAutoSubstituted'
1983
- },
1984
- {
1985
- name: 'perfectMatchApprovedOnly',
1986
- value: 'perfectMatchApprovedOnly'
1987
- },
1988
- {
1989
- name: 'perfectMatchOnly',
1990
- value: 'perfectMatchOnly'
1991
- },
1992
- {
1993
- name: 'none',
1994
- value: 'none'
1995
- }
1996
- ],
1997
- routing: {
1998
- send: {
1999
- property: 'autoApproveOption',
2000
- propertyInDotNotation: false,
2001
- type: 'body',
2002
- value: '={{ $value || undefined }}'
2003
- }
2004
- },
2005
- displayOptions: {
2006
- show: {
2007
- resource: [
2008
- 'translations'
2009
- ],
2010
- operation: [
2011
- 'api.projects.pre-translations.post'
2012
- ]
2013
- }
2014
- }
2015
- },
2016
- {
2017
- displayName: 'Duplicate Translations',
2018
- name: 'duplicateTranslations',
2019
- type: 'boolean',
2020
- default: false,
2021
- description: 'Adds translations even if the same translation already exists. Default is `false`.\n\n__Note:__ Cannot be used when `replaceTranslationsOption` is `all` (replacing all translations already overrides duplicate handling).',
2022
- routing: {
2023
- send: {
2024
- property: 'duplicateTranslations',
2025
- propertyInDotNotation: false,
2026
- type: 'body',
2027
- value: '={{ $value }}'
2028
- }
2029
- },
2030
- displayOptions: {
2031
- show: {
2032
- resource: [
2033
- 'translations'
2034
- ],
2035
- operation: [
2036
- 'api.projects.pre-translations.post'
2037
- ]
2038
- }
2039
- }
2040
- },
2041
- {
2042
- displayName: 'Skip Approved Translations',
2043
- name: 'skipApprovedTranslations',
2044
- type: 'boolean',
2045
- default: false,
2046
- description: 'Skip strings that already have approved translations. Default is `false`.\n\n__Note:__ Cannot be used together with `resetApprovalStatus`.',
2047
- routing: {
2048
- send: {
2049
- property: 'skipApprovedTranslations',
2050
- propertyInDotNotation: false,
2051
- type: 'body',
2052
- value: '={{ $value }}'
2053
- }
2054
- },
2055
- displayOptions: {
2056
- show: {
2057
- resource: [
2058
- 'translations'
2059
- ],
2060
- operation: [
2061
- 'api.projects.pre-translations.post'
2062
- ]
2063
- }
2064
- }
2065
- },
2066
- {
2067
- displayName: 'Scope',
2068
- name: 'scope',
2069
- type: 'options',
2070
- default: '',
2071
- description: 'Which strings to apply auto-translation to. Default is `untranslated`. Available values:\n- \'untranslated\' – strings without an existing translation (default)\n- \'translated\' – strings that already have a translation (re-translation)\n- \'all\' – both untranslated and translated strings\n\n__Note:__ Cannot be used together with the deprecated `translateUntranslatedOnly`.',
2072
- options: [
2073
- {
2074
- name: '-',
2075
- value: ''
2076
- },
2077
- {
2078
- name: 'untranslated',
2079
- value: 'untranslated'
2080
- },
2081
- {
2082
- name: 'translated',
2083
- value: 'translated'
2084
- },
2085
- {
2086
- name: 'all',
2087
- value: 'all'
2088
- }
2089
- ],
2090
- routing: {
2091
- send: {
2092
- property: 'scope',
2093
- propertyInDotNotation: false,
2094
- type: 'body',
2095
- value: '={{ $value || undefined }}'
2096
- }
2097
- },
2098
- displayOptions: {
2099
- show: {
2100
- resource: [
2101
- 'translations'
2102
- ],
2103
- operation: [
2104
- 'api.projects.pre-translations.post'
2105
- ]
2106
- }
2107
- }
2108
- },
2109
- {
2110
- displayName: 'Translation Modified Before',
2111
- name: 'dateTime:translationModifiedBefore',
2112
- type: 'dateTime',
2113
- default: '',
2114
- description: 'Re-translates only if a string\'s current translation was modified prior to this date. Useful after modifying contextual resources like screenshots, style guides, or glossaries.\n\n__Note:__ Requires `scope` to be `translated` or `all`. Cannot be used with `scope: "untranslated"` or `translateUntranslatedOnly: true`.',
2115
- routing: {
2116
- send: {
2117
- property: 'translationModifiedBefore',
2118
- propertyInDotNotation: false,
2119
- type: 'body',
2120
- value: '={{ $value || undefined }}'
2121
- }
2122
- },
1764
+ displayName: 'Body',
1765
+ name: '_body',
1766
+ description: 'Select configuration type',
1767
+ default: {},
1768
+ type: 'fixedCollection',
2123
1769
  displayOptions: {
2124
1770
  show: {
2125
1771
  resource: [
@@ -2130,259 +1776,572 @@ exports.translationsProperties = [
2130
1776
  ]
2131
1777
  }
2132
1778
  },
2133
- placeholder: '2026-01-01T00:00:00+00:00'
2134
- },
2135
- {
2136
- displayName: 'Replace Translations Option',
2137
- name: 'replaceTranslationsOption',
2138
- type: 'options',
2139
- default: '',
2140
- description: 'Defines whether to replace existing translations with new auto-translations. Default is `none`. Available values:\n- \'none\' – add the new translation alongside existing ones (default)\n- \'autoTranslated\' – replace auto-generated translations (TM, MT, AI). Human translations are kept\n- \'all\' – replace all existing translations\n\n__Note:__ Values other than `none` require `scope` to be `translated` or `all` (cannot be combined with `scope: "untranslated"` or `translateUntranslatedOnly: true`).',
2141
1779
  options: [
2142
1780
  {
2143
- name: '-',
2144
- value: ''
2145
- },
2146
- {
2147
- name: 'none',
2148
- value: 'none'
2149
- },
2150
- {
2151
- name: 'autoTranslated',
2152
- value: 'autoTranslated'
2153
- },
2154
- {
2155
- name: 'all',
2156
- value: 'all'
2157
- }
2158
- ],
2159
- routing: {
2160
- send: {
2161
- property: 'replaceTranslationsOption',
2162
- propertyInDotNotation: false,
2163
- type: 'body',
2164
- value: '={{ $value || undefined }}'
2165
- }
2166
- },
2167
- displayOptions: {
2168
- show: {
2169
- resource: [
2170
- 'translations'
2171
- ],
2172
- operation: [
2173
- 'api.projects.pre-translations.post'
2174
- ]
2175
- }
2176
- }
2177
- },
2178
- {
2179
- displayName: 'Reset Approval Status',
2180
- name: 'resetApprovalStatus',
2181
- type: 'boolean',
2182
- default: false,
2183
- description: 'Removes approval on existing translations when applying auto-translations. Default is `false`.\n\n__Note:__ Requires `scope` to be `translated` or `all`. Cannot be used together with `skipApprovedTranslations`, `autoApproveOption` (any value other than `none`), or when `replaceTranslationsOption` is `all` (replaced translations lose approval automatically). Cannot be used with `scope: "untranslated"` or `translateUntranslatedOnly: true`.',
2184
- routing: {
2185
- send: {
2186
- property: 'resetApprovalStatus',
2187
- propertyInDotNotation: false,
2188
- type: 'body',
2189
- value: '={{ $value }}'
2190
- }
2191
- },
2192
- displayOptions: {
2193
- show: {
2194
- resource: [
2195
- 'translations'
2196
- ],
2197
- operation: [
2198
- 'api.projects.pre-translations.post'
2199
- ]
2200
- }
2201
- }
2202
- },
2203
- {
2204
- displayName: 'Minimum Match Ratio',
2205
- name: 'minimumMatchRatio',
2206
- type: 'number',
2207
- default: 0,
2208
- description: 'Add translation when TM match is greater or equal to minimum match ratio. This argument will be ignored if `translateWithPerfectMatchOnly` is set.\n\n__Note:__ Works only with TM auto-translation method',
2209
- routing: {
2210
- send: {
2211
- property: 'minimumMatchRatio',
2212
- propertyInDotNotation: false,
2213
- type: 'body',
2214
- value: '={{ $value !== 0 ? $value : undefined }}'
2215
- }
2216
- },
2217
- displayOptions: {
2218
- show: {
2219
- resource: [
2220
- 'translations'
2221
- ],
2222
- operation: [
2223
- 'api.projects.pre-translations.post'
2224
- ]
2225
- }
2226
- },
2227
- placeholder: '100'
2228
- },
2229
- {
2230
- displayName: 'Translate With Perfect Match Only',
2231
- name: 'translateWithPerfectMatchOnly',
2232
- type: 'boolean',
2233
- default: false,
2234
- description: 'Applies auto-translation only for the strings with perfect match (source text and contextual information are identical)\n\n__Note:__ Works only with TM auto-translation method',
2235
- routing: {
2236
- send: {
2237
- property: 'translateWithPerfectMatchOnly',
2238
- propertyInDotNotation: false,
2239
- type: 'body',
2240
- value: '={{ $value }}'
2241
- }
2242
- },
2243
- displayOptions: {
2244
- show: {
2245
- resource: [
2246
- 'translations'
2247
- ],
2248
- operation: [
2249
- 'api.projects.pre-translations.post'
2250
- ]
2251
- }
2252
- }
2253
- },
2254
- {
2255
- displayName: 'Fallback Languages',
2256
- name: 'fallbackLanguages',
2257
- type: 'fixedCollection',
2258
- default: {},
2259
- description: 'Defines fallback languages mapping. The passed value should be an associative array containing both language id and array of fallback language ids:\n\n - `{languageId}` – Crowdin id for the specified language. Get via [List Supported Languages](#operation/api.languages.getMany)\n - `Array of strings` – an array containing fallback language ids. Get via [List Supported Languages](#operation/api.languages.getMany)\n\n__Note:__ Available only for TM Auto-Translation',
2260
- routing: {
2261
- send: {
2262
- property: 'fallbackLanguages',
2263
- propertyInDotNotation: false,
2264
- type: 'body',
2265
- value: '={{ $value.fields || undefined }}',
2266
- preSend: [
2267
- preSend_1.normalizeFieldBody
2268
- ]
2269
- }
2270
- },
2271
- displayOptions: {
2272
- show: {
2273
- resource: [
2274
- 'translations'
2275
- ],
2276
- operation: [
2277
- 'api.projects.pre-translations.post'
1781
+ displayName: 'By Files',
1782
+ name: '_byFiles',
1783
+ values: [
1784
+ {
1785
+ displayName: 'Language Ids',
1786
+ name: 'languageIds',
1787
+ type: 'multiOptions',
1788
+ typeOptions: {
1789
+ loadOptionsMethod: 'getLanguagesMulti'
1790
+ },
1791
+ default: [],
1792
+ description: 'Set of languages to which auto-translation should be applied. Get via [List Supported Languages](#operation/api.languages.getMany)',
1793
+ required: true
1794
+ },
1795
+ {
1796
+ displayName: 'Branch Ids',
1797
+ name: 'branchIds',
1798
+ type: 'multiOptions',
1799
+ typeOptions: {
1800
+ loadOptionsMethod: 'getBranchesMulti',
1801
+ loadOptionsDependsOn: [
1802
+ 'projectId'
1803
+ ]
1804
+ },
1805
+ default: [],
1806
+ description: 'Branches array that should be translated'
1807
+ },
1808
+ {
1809
+ displayName: 'Label Ids',
1810
+ name: 'labelIds',
1811
+ type: 'multiOptions',
1812
+ typeOptions: {
1813
+ loadOptionsMethod: 'getProjectLabelsMulti',
1814
+ loadOptionsDependsOn: [
1815
+ 'projectId'
1816
+ ]
1817
+ },
1818
+ default: [],
1819
+ description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)'
1820
+ },
1821
+ {
1822
+ displayName: 'Exclude Label Ids',
1823
+ name: 'excludeLabelIds',
1824
+ type: 'multiOptions',
1825
+ typeOptions: {
1826
+ loadOptionsMethod: 'getProjectLabelsMulti',
1827
+ loadOptionsDependsOn: [
1828
+ 'projectId'
1829
+ ]
1830
+ },
1831
+ default: [],
1832
+ description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)'
1833
+ },
1834
+ {
1835
+ displayName: 'Method',
1836
+ name: 'method',
1837
+ type: 'options',
1838
+ default: '',
1839
+ description: 'Defines auto-translation method. Available values:\n- \'tm\' – auto-translation via Translation Memory\n- \'mt\' – auto-translation via Machine Translation. \'mt\' should be used with `engineId` parameter\n- \'ai\' – auto-translation via AI. \'ai\' should be used with `aiPromptId` parameter',
1840
+ options: [
1841
+ {
1842
+ name: '-',
1843
+ value: ''
1844
+ },
1845
+ {
1846
+ name: 'tm',
1847
+ value: 'tm'
1848
+ },
1849
+ {
1850
+ name: 'mt',
1851
+ value: 'mt'
1852
+ },
1853
+ {
1854
+ name: 'ai',
1855
+ value: 'ai'
1856
+ }
1857
+ ],
1858
+ placeholder: 'mt'
1859
+ },
1860
+ {
1861
+ displayName: 'Priority',
1862
+ name: 'priority',
1863
+ type: 'options',
1864
+ default: '',
1865
+ description: undefined,
1866
+ options: [
1867
+ {
1868
+ name: '-',
1869
+ value: ''
1870
+ },
1871
+ {
1872
+ name: 'low',
1873
+ value: 'low'
1874
+ },
1875
+ {
1876
+ name: 'normal',
1877
+ value: 'normal'
1878
+ },
1879
+ {
1880
+ name: 'high',
1881
+ value: 'high'
1882
+ }
1883
+ ]
1884
+ },
1885
+ {
1886
+ displayName: 'Engine Id',
1887
+ name: 'engineId',
1888
+ type: 'options',
1889
+ default: '',
1890
+ description: 'Machine Translation engine Identifier. Get via [List MTs](#operation/api.mts.getMany)',
1891
+ typeOptions: {
1892
+ loadOptionsMethod: 'getMTEngines'
1893
+ }
1894
+ },
1895
+ {
1896
+ displayName: 'Ai Prompt Id',
1897
+ name: 'aiPromptId',
1898
+ type: 'options',
1899
+ default: '',
1900
+ description: 'AI Prompt Identifier. Get via [List AI Prompts](#operation/api.ai.prompts.getMany)',
1901
+ typeOptions: {
1902
+ loadOptionsMethod: 'getAiPrompts'
1903
+ }
1904
+ },
1905
+ {
1906
+ displayName: 'Auto Approve Option',
1907
+ name: 'autoApproveOption',
1908
+ type: 'options',
1909
+ default: '',
1910
+ description: 'Defines which translations added by TM auto-translation should be auto-approved. Available values:\n- \'all\' – all\n- \'perfectMatchOnly\' – with perfect TM match\n- \'exceptAutoSubstituted\' – all (skip auto-substituted suggestions)\n- \'perfectMatchApprovedOnly\' - with perfect TM match (approved previously)\n- \'none\' – no auto-approve',
1911
+ options: [
1912
+ {
1913
+ name: '-',
1914
+ value: ''
1915
+ },
1916
+ {
1917
+ name: 'all',
1918
+ value: 'all'
1919
+ },
1920
+ {
1921
+ name: 'exceptAutoSubstituted',
1922
+ value: 'exceptAutoSubstituted'
1923
+ },
1924
+ {
1925
+ name: 'perfectMatchApprovedOnly',
1926
+ value: 'perfectMatchApprovedOnly'
1927
+ },
1928
+ {
1929
+ name: 'perfectMatchOnly',
1930
+ value: 'perfectMatchOnly'
1931
+ },
1932
+ {
1933
+ name: 'none',
1934
+ value: 'none'
1935
+ }
1936
+ ]
1937
+ },
1938
+ {
1939
+ displayName: 'Duplicate Translations',
1940
+ name: 'duplicateTranslations',
1941
+ type: 'boolean',
1942
+ default: false,
1943
+ description: 'Adds translations even if the same translation already exists. Default is `false`.\n\n__Note:__ Cannot be used when `replaceTranslationsOption` is `all` (replacing all translations already overrides duplicate handling).'
1944
+ },
1945
+ {
1946
+ displayName: 'Skip Approved Translations',
1947
+ name: 'skipApprovedTranslations',
1948
+ type: 'boolean',
1949
+ default: false,
1950
+ description: 'Skip strings that already have approved translations. Default is `false`.\n\n__Note:__ Cannot be used together with `resetApprovalStatus`.'
1951
+ },
1952
+ {
1953
+ displayName: 'Scope',
1954
+ name: 'scope',
1955
+ type: 'options',
1956
+ default: '',
1957
+ description: 'Which strings to apply auto-translation to. Default is `untranslated`. Available values:\n- \'untranslated\' – strings without an existing translation (default)\n- \'translated\' – strings that already have a translation (re-translation)\n- \'all\' – both untranslated and translated strings\n\n__Note:__ Cannot be used together with the deprecated `translateUntranslatedOnly`.',
1958
+ options: [
1959
+ {
1960
+ name: '-',
1961
+ value: ''
1962
+ },
1963
+ {
1964
+ name: 'untranslated',
1965
+ value: 'untranslated'
1966
+ },
1967
+ {
1968
+ name: 'translated',
1969
+ value: 'translated'
1970
+ },
1971
+ {
1972
+ name: 'all',
1973
+ value: 'all'
1974
+ }
1975
+ ]
1976
+ },
1977
+ {
1978
+ displayName: 'Translation Modified Before',
1979
+ name: 'dateTime:translationModifiedBefore',
1980
+ type: 'dateTime',
1981
+ default: '',
1982
+ description: 'Re-translates only if a string\'s current translation was modified prior to this date. Useful after modifying contextual resources like screenshots, style guides, or glossaries.\n\n__Note:__ Requires `scope` to be `translated` or `all`. Cannot be used with `scope: "untranslated"` or `translateUntranslatedOnly: true`.',
1983
+ placeholder: '2026-01-01T00:00:00+00:00'
1984
+ },
1985
+ {
1986
+ displayName: 'Translation Modified After',
1987
+ name: 'dateTime:translationModifiedAfter',
1988
+ type: 'dateTime',
1989
+ default: '',
1990
+ description: 'Re-translates only if a string\'s current translation was modified after this date. Can be combined with `translationModifiedBefore` to define a date range.\n\n__Note:__ Cannot be later than `translationModifiedBefore`. Requires `scope` to be `translated` or `all`. Cannot be used with `scope: "untranslated"` or `translateUntranslatedOnly: true`.',
1991
+ placeholder: '2026-01-01T00:00:00+00:00'
1992
+ },
1993
+ {
1994
+ displayName: 'Replace Translations Option',
1995
+ name: 'replaceTranslationsOption',
1996
+ type: 'options',
1997
+ default: '',
1998
+ description: 'Defines whether to replace existing translations with new auto-translations. Default is `none`. Available values:\n- \'none\' – add the new translation alongside existing ones (default)\n- \'autoTranslated\' – replace auto-generated translations (TM, MT, AI). Human translations are kept\n- \'all\' – replace all existing translations\n\n__Note:__ Values other than `none` require `scope` to be `translated` or `all` (cannot be combined with `scope: "untranslated"` or `translateUntranslatedOnly: true`).',
1999
+ options: [
2000
+ {
2001
+ name: '-',
2002
+ value: ''
2003
+ },
2004
+ {
2005
+ name: 'none',
2006
+ value: 'none'
2007
+ },
2008
+ {
2009
+ name: 'autoTranslated',
2010
+ value: 'autoTranslated'
2011
+ },
2012
+ {
2013
+ name: 'all',
2014
+ value: 'all'
2015
+ }
2016
+ ]
2017
+ },
2018
+ {
2019
+ displayName: 'Reset Approval Status',
2020
+ name: 'resetApprovalStatus',
2021
+ type: 'boolean',
2022
+ default: false,
2023
+ description: 'Removes approval on existing translations when applying auto-translations. Default is `false`.\n\n__Note:__ Requires `scope` to be `translated` or `all`. Cannot be used together with `skipApprovedTranslations`, `autoApproveOption` (any value other than `none`), or when `replaceTranslationsOption` is `all` (replaced translations lose approval automatically). Cannot be used with `scope: "untranslated"` or `translateUntranslatedOnly: true`.'
2024
+ },
2025
+ {
2026
+ displayName: 'Minimum Match Ratio',
2027
+ name: 'minimumMatchRatio',
2028
+ type: 'number',
2029
+ default: 0,
2030
+ description: 'Add translation when TM match is greater or equal to minimum match ratio. This argument will be ignored if `translateWithPerfectMatchOnly` is set.\n\n__Note:__ Works only with TM auto-translation method',
2031
+ placeholder: '100'
2032
+ },
2033
+ {
2034
+ displayName: 'Translate With Perfect Match Only',
2035
+ name: 'translateWithPerfectMatchOnly',
2036
+ type: 'boolean',
2037
+ default: false,
2038
+ description: 'Applies auto-translation only for the strings with perfect match (source text and contextual information are identical)\n\n__Note:__ Works only with TM auto-translation method'
2039
+ },
2040
+ {
2041
+ displayName: 'Fallback Languages',
2042
+ name: 'fallbackLanguages',
2043
+ type: 'fixedCollection',
2044
+ default: {},
2045
+ description: 'Defines fallback languages mapping. The passed value should be an associative array containing both language id and array of fallback language ids:\n\n - `{languageId}` – Crowdin id for the specified language. Get via [List Supported Languages](#operation/api.languages.getMany)\n - `Array of strings` – an array containing fallback language ids. Get via [List Supported Languages](#operation/api.languages.getMany)\n\n__Note:__ Available only for TM Auto-Translation',
2046
+ placeholder: 'Add Field',
2047
+ options: [
2048
+ {
2049
+ displayName: 'Fields',
2050
+ name: 'fields',
2051
+ values: [
2052
+ {
2053
+ displayName: 'Language Id',
2054
+ name: 'languageId',
2055
+ type: 'options',
2056
+ typeOptions: {
2057
+ loadOptionsMethod: 'getLanguages'
2058
+ },
2059
+ default: '',
2060
+ description: undefined
2061
+ }
2062
+ ]
2063
+ }
2064
+ ]
2065
+ },
2066
+ {
2067
+ displayName: 'Custom Instruction',
2068
+ name: 'customInstruction',
2069
+ type: 'string',
2070
+ default: '',
2071
+ description: 'Custom instruction for AI auto-translation. This instruction will be appended to the AI prompt text.\n\n__Note:__ Available only for AI auto-translation method'
2072
+ }
2278
2073
  ]
2279
- }
2280
- },
2281
- placeholder: 'Add Field',
2282
- options: [
2074
+ },
2283
2075
  {
2284
- displayName: 'Fields',
2285
- name: 'fields',
2076
+ displayName: 'By Task',
2077
+ name: '_byTask',
2286
2078
  values: [
2287
2079
  {
2288
- displayName: 'Language Id',
2289
- name: 'languageId',
2080
+ displayName: 'Task Id',
2081
+ name: 'taskId',
2290
2082
  type: 'options',
2083
+ default: '',
2084
+ description: 'Task Identifier. Get via [List Tasks](#operation/api.projects.tasks.getMany)',
2085
+ required: true,
2291
2086
  typeOptions: {
2292
- loadOptionsMethod: 'getLanguages'
2293
- },
2087
+ loadOptionsMethod: 'getProjectTasks',
2088
+ loadOptionsDependsOn: [
2089
+ 'projectId'
2090
+ ]
2091
+ }
2092
+ },
2093
+ {
2094
+ displayName: 'Method',
2095
+ name: 'method',
2096
+ type: 'options',
2097
+ default: '',
2098
+ description: 'Defines auto-translation method. Available values:\n- \'tm\' – auto-translation via Translation Memory\n- \'mt\' – auto-translation via Machine Translation. \'mt\' should be used with `engineId` parameter\n- \'ai\' – auto-translation via AI. \'ai\' should be used with `aiPromptId` parameter',
2099
+ options: [
2100
+ {
2101
+ name: '-',
2102
+ value: ''
2103
+ },
2104
+ {
2105
+ name: 'tm',
2106
+ value: 'tm'
2107
+ },
2108
+ {
2109
+ name: 'mt',
2110
+ value: 'mt'
2111
+ },
2112
+ {
2113
+ name: 'ai',
2114
+ value: 'ai'
2115
+ }
2116
+ ],
2117
+ placeholder: 'mt'
2118
+ },
2119
+ {
2120
+ displayName: 'Priority',
2121
+ name: 'priority',
2122
+ type: 'options',
2123
+ default: '',
2124
+ description: undefined,
2125
+ options: [
2126
+ {
2127
+ name: '-',
2128
+ value: ''
2129
+ },
2130
+ {
2131
+ name: 'low',
2132
+ value: 'low'
2133
+ },
2134
+ {
2135
+ name: 'normal',
2136
+ value: 'normal'
2137
+ },
2138
+ {
2139
+ name: 'high',
2140
+ value: 'high'
2141
+ }
2142
+ ]
2143
+ },
2144
+ {
2145
+ displayName: 'Engine Id',
2146
+ name: 'engineId',
2147
+ type: 'options',
2148
+ default: '',
2149
+ description: 'Machine Translation engine Identifier. Get via [List MTs](#operation/api.mts.getMany)',
2150
+ typeOptions: {
2151
+ loadOptionsMethod: 'getMTEngines'
2152
+ }
2153
+ },
2154
+ {
2155
+ displayName: 'Ai Prompt Id',
2156
+ name: 'aiPromptId',
2157
+ type: 'options',
2158
+ default: '',
2159
+ description: 'AI Prompt Identifier. Get via [List AI Prompts](#operation/api.ai.prompts.getMany)',
2160
+ typeOptions: {
2161
+ loadOptionsMethod: 'getAiPrompts'
2162
+ }
2163
+ },
2164
+ {
2165
+ displayName: 'Auto Approve Option',
2166
+ name: 'autoApproveOption',
2167
+ type: 'options',
2168
+ default: '',
2169
+ description: 'Defines which translations added by TM auto-translation should be auto-approved. Available values:\n- \'all\' – all\n- \'perfectMatchOnly\' – with perfect TM match\n- \'exceptAutoSubstituted\' – all (skip auto-substituted suggestions)\n- \'perfectMatchApprovedOnly\' - with perfect TM match (approved previously)\n- \'none\' – no auto-approve',
2170
+ options: [
2171
+ {
2172
+ name: '-',
2173
+ value: ''
2174
+ },
2175
+ {
2176
+ name: 'all',
2177
+ value: 'all'
2178
+ },
2179
+ {
2180
+ name: 'exceptAutoSubstituted',
2181
+ value: 'exceptAutoSubstituted'
2182
+ },
2183
+ {
2184
+ name: 'perfectMatchApprovedOnly',
2185
+ value: 'perfectMatchApprovedOnly'
2186
+ },
2187
+ {
2188
+ name: 'perfectMatchOnly',
2189
+ value: 'perfectMatchOnly'
2190
+ },
2191
+ {
2192
+ name: 'none',
2193
+ value: 'none'
2194
+ }
2195
+ ]
2196
+ },
2197
+ {
2198
+ displayName: 'Duplicate Translations',
2199
+ name: 'duplicateTranslations',
2200
+ type: 'boolean',
2201
+ default: false,
2202
+ description: 'Adds translations even if the same translation already exists. Default is `false`.\n\n__Note:__ Cannot be used when `replaceTranslationsOption` is `all` (replacing all translations already overrides duplicate handling).'
2203
+ },
2204
+ {
2205
+ displayName: 'Skip Approved Translations',
2206
+ name: 'skipApprovedTranslations',
2207
+ type: 'boolean',
2208
+ default: false,
2209
+ description: 'Skip strings that already have approved translations. Default is `false`.\n\n__Note:__ Cannot be used together with `resetApprovalStatus`.'
2210
+ },
2211
+ {
2212
+ displayName: 'Scope',
2213
+ name: 'scope',
2214
+ type: 'options',
2215
+ default: '',
2216
+ description: 'Which strings to apply auto-translation to. Default is `untranslated`. Available values:\n- \'untranslated\' – strings without an existing translation (default)\n- \'translated\' – strings that already have a translation (re-translation)\n- \'all\' – both untranslated and translated strings\n\n__Note:__ Cannot be used together with the deprecated `translateUntranslatedOnly`.',
2217
+ options: [
2218
+ {
2219
+ name: '-',
2220
+ value: ''
2221
+ },
2222
+ {
2223
+ name: 'untranslated',
2224
+ value: 'untranslated'
2225
+ },
2226
+ {
2227
+ name: 'translated',
2228
+ value: 'translated'
2229
+ },
2230
+ {
2231
+ name: 'all',
2232
+ value: 'all'
2233
+ }
2234
+ ]
2235
+ },
2236
+ {
2237
+ displayName: 'Translation Modified Before',
2238
+ name: 'dateTime:translationModifiedBefore',
2239
+ type: 'dateTime',
2240
+ default: '',
2241
+ description: 'Re-translates only if a string\'s current translation was modified prior to this date. Useful after modifying contextual resources like screenshots, style guides, or glossaries.\n\n__Note:__ Requires `scope` to be `translated` or `all`. Cannot be used with `scope: "untranslated"` or `translateUntranslatedOnly: true`.',
2242
+ placeholder: '2026-01-01T00:00:00+00:00'
2243
+ },
2244
+ {
2245
+ displayName: 'Translation Modified After',
2246
+ name: 'dateTime:translationModifiedAfter',
2247
+ type: 'dateTime',
2248
+ default: '',
2249
+ description: 'Re-translates only if a string\'s current translation was modified after this date. Can be combined with `translationModifiedBefore` to define a date range.\n\n__Note:__ Cannot be later than `translationModifiedBefore`. Requires `scope` to be `translated` or `all`. Cannot be used with `scope: "untranslated"` or `translateUntranslatedOnly: true`.',
2250
+ placeholder: '2026-01-01T00:00:00+00:00'
2251
+ },
2252
+ {
2253
+ displayName: 'Replace Translations Option',
2254
+ name: 'replaceTranslationsOption',
2255
+ type: 'options',
2294
2256
  default: '',
2295
- description: undefined
2257
+ description: 'Defines whether to replace existing translations with new auto-translations. Default is `none`. Available values:\n- \'none\' – add the new translation alongside existing ones (default)\n- \'autoTranslated\' – replace auto-generated translations (TM, MT, AI). Human translations are kept\n- \'all\' – replace all existing translations\n\n__Note:__ Values other than `none` require `scope` to be `translated` or `all` (cannot be combined with `scope: "untranslated"` or `translateUntranslatedOnly: true`).',
2258
+ options: [
2259
+ {
2260
+ name: '-',
2261
+ value: ''
2262
+ },
2263
+ {
2264
+ name: 'none',
2265
+ value: 'none'
2266
+ },
2267
+ {
2268
+ name: 'autoTranslated',
2269
+ value: 'autoTranslated'
2270
+ },
2271
+ {
2272
+ name: 'all',
2273
+ value: 'all'
2274
+ }
2275
+ ]
2276
+ },
2277
+ {
2278
+ displayName: 'Reset Approval Status',
2279
+ name: 'resetApprovalStatus',
2280
+ type: 'boolean',
2281
+ default: false,
2282
+ description: 'Removes approval on existing translations when applying auto-translations. Default is `false`.\n\n__Note:__ Requires `scope` to be `translated` or `all`. Cannot be used together with `skipApprovedTranslations`, `autoApproveOption` (any value other than `none`), or when `replaceTranslationsOption` is `all` (replaced translations lose approval automatically). Cannot be used with `scope: "untranslated"` or `translateUntranslatedOnly: true`.'
2283
+ },
2284
+ {
2285
+ displayName: 'Minimum Match Ratio',
2286
+ name: 'minimumMatchRatio',
2287
+ type: 'number',
2288
+ default: 0,
2289
+ description: 'Add translation when TM match is greater or equal to minimum match ratio. This argument will be ignored if `translateWithPerfectMatchOnly` is set.\n\n__Note:__ Works only with TM auto-translation method',
2290
+ placeholder: '100'
2291
+ },
2292
+ {
2293
+ displayName: 'Translate With Perfect Match Only',
2294
+ name: 'translateWithPerfectMatchOnly',
2295
+ type: 'boolean',
2296
+ default: false,
2297
+ description: 'Applies auto-translation only for the strings with perfect match (source text and contextual information are identical)\n\n__Note:__ Works only with TM auto-translation method'
2298
+ },
2299
+ {
2300
+ displayName: 'Fallback Languages',
2301
+ name: 'fallbackLanguages',
2302
+ type: 'fixedCollection',
2303
+ default: {},
2304
+ description: 'Defines fallback languages mapping. The passed value should be an associative array containing both language id and array of fallback language ids:\n\n - `{languageId}` – Crowdin id for the specified language. Get via [List Supported Languages](#operation/api.languages.getMany)\n - `Array of strings` – an array containing fallback language ids. Get via [List Supported Languages](#operation/api.languages.getMany)\n\n__Note:__ Available only for TM Auto-Translation',
2305
+ placeholder: 'Add Field',
2306
+ options: [
2307
+ {
2308
+ displayName: 'Fields',
2309
+ name: 'fields',
2310
+ values: [
2311
+ {
2312
+ displayName: 'Language Id',
2313
+ name: 'languageId',
2314
+ type: 'options',
2315
+ typeOptions: {
2316
+ loadOptionsMethod: 'getLanguages'
2317
+ },
2318
+ default: '',
2319
+ description: undefined
2320
+ }
2321
+ ]
2322
+ }
2323
+ ]
2324
+ },
2325
+ {
2326
+ displayName: 'Custom Instruction',
2327
+ name: 'customInstruction',
2328
+ type: 'string',
2329
+ default: '',
2330
+ description: 'Custom instruction for AI auto-translation. This instruction will be appended to the AI prompt text.\n\n__Note:__ Available only for AI auto-translation method'
2296
2331
  }
2297
2332
  ]
2298
2333
  }
2299
- ]
2300
- },
2301
- {
2302
- displayName: 'Label Ids',
2303
- name: 'labelIds',
2304
- type: 'multiOptions',
2305
- default: [],
2306
- description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)',
2334
+ ],
2307
2335
  routing: {
2308
2336
  send: {
2309
- property: 'labelIds',
2310
- propertyInDotNotation: false,
2311
- type: 'body',
2312
- value: '={{ $value }}'
2313
- }
2314
- },
2315
- displayOptions: {
2316
- show: {
2317
- resource: [
2318
- 'translations'
2337
+ preSend: [
2338
+ preSend_1.normalizeRootBody
2319
2339
  ],
2320
- operation: [
2321
- 'api.projects.pre-translations.post'
2322
- ]
2323
- }
2324
- },
2325
- typeOptions: {
2326
- loadOptionsMethod: 'getProjectLabelsMulti',
2327
- loadOptionsDependsOn: [
2328
- 'projectId'
2329
- ]
2330
- }
2331
- },
2332
- {
2333
- displayName: 'Exclude Label Ids',
2334
- name: 'excludeLabelIds',
2335
- type: 'multiOptions',
2336
- default: [],
2337
- description: 'Label Identifiers. Get via [List Labels](#operation/api.projects.labels.getMany)',
2338
- routing: {
2339
- send: {
2340
- property: 'excludeLabelIds',
2340
+ property: '_body',
2341
2341
  propertyInDotNotation: false,
2342
2342
  type: 'body',
2343
2343
  value: '={{ $value }}'
2344
2344
  }
2345
- },
2346
- displayOptions: {
2347
- show: {
2348
- resource: [
2349
- 'translations'
2350
- ],
2351
- operation: [
2352
- 'api.projects.pre-translations.post'
2353
- ]
2354
- }
2355
- },
2356
- typeOptions: {
2357
- loadOptionsMethod: 'getProjectLabelsMulti',
2358
- loadOptionsDependsOn: [
2359
- 'projectId'
2360
- ]
2361
- }
2362
- },
2363
- {
2364
- displayName: 'Custom Instruction',
2365
- name: 'customInstruction',
2366
- type: 'string',
2367
- default: '',
2368
- description: 'Custom instruction for AI auto-translation. This instruction will be appended to the AI prompt text.\n\n__Note:__ Available only for AI auto-translation method',
2369
- routing: {
2370
- send: {
2371
- property: 'customInstruction',
2372
- propertyInDotNotation: false,
2373
- type: 'body',
2374
- value: '={{ $value || undefined }}'
2375
- }
2376
- },
2377
- displayOptions: {
2378
- show: {
2379
- resource: [
2380
- 'translations'
2381
- ],
2382
- operation: [
2383
- 'api.projects.pre-translations.post'
2384
- ]
2385
- }
2386
2345
  }
2387
2346
  },
2388
2347
  {
@@ -3456,31 +3415,6 @@ exports.translationsProperties = [
3456
3415
  value: 'finished'
3457
3416
  }
3458
3417
  ]
3459
- },
3460
- {
3461
- displayName: 'Priority',
3462
- name: 'priority',
3463
- type: 'options',
3464
- default: '',
3465
- description: 'Value for /priority',
3466
- options: [
3467
- {
3468
- name: '-',
3469
- value: ''
3470
- },
3471
- {
3472
- name: 'low',
3473
- value: 'low'
3474
- },
3475
- {
3476
- name: 'normal',
3477
- value: 'normal'
3478
- },
3479
- {
3480
- name: 'high',
3481
- value: 'high'
3482
- }
3483
- ]
3484
3418
  }
3485
3419
  ],
3486
3420
  routing: {