You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Initial version
* Initial ideas from discussion
* translation guidelines: initial version
* Fixes for markup
* Note on language specific info in solution setup
* Apply suggestions from code review
Co-authored-by: Donald Sebastian Leung <donaldsebleung@gmail.com>
* Apply suggestions from code review
Co-authored-by: kazk <kazk.dev@gmail.com>
* Apply suggestions from code review
Co-authored-by: Donald Sebastian Leung <donaldsebleung@gmail.com>
* Apply suggestions from code review
Co-authored-by: Donald Sebastian Leung <donaldsebleung@gmail.com>
* fix names for code snippets
* Apply suggestions from code review
Co-authored-by: Donald Sebastian Leung <donaldsebleung@gmail.com>
* Formatting
* Do not translate into easier languages
* Apply suggestions from code review
* Organization of bullet points with links
* Apply suggestions from code review
Co-authored-by: Blind4Basics <32236948+Blind4Basics@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Donald Sebastian Leung <donaldsebleung@gmail.com>
Co-authored-by: Donald Sebastian Leung <donaldsebleung@gmail.com>
Co-authored-by: kazk <kazk.dev@gmail.com>
Co-authored-by: Blind4Basics <32236948+Blind4Basics@users.noreply.github.com>
Copy file name to clipboardExpand all lines: content/recipes/authoring/translation.md
+49-1Lines changed: 49 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -7,4 +7,52 @@ next: /recipes/authoring/kumite/
7
7
8
8
# Creating a Translation
9
9
10
-
_This page is a stub._
10
+
This article contains a set of guidelines, which can be used by translators to create good translations to existing kata. They were collected to help ensure that translations are of sufficient quality and users' experience will be as good as possible.
11
+
12
+
The guidelines should be used by translators and reviewers to verify whether translations about to be introduced into Codewars are of sufficient quality. Conformance with them should be verified before the translation is published and before it's approved.
13
+
14
+
Failure to comply with the below guidelines is considered an issue and should be reported as such. In case of severe violations, the affected translation can be rejected or even deleted.
15
+
16
+
## General translation guidelines
17
+
18
+
-**Respect the [General Content Guidelines](/recipes/authoring/general/).**
19
+
-**Translations should improve the overall quality of the kata.** The sub-optimal quality of existing, approved translations should not be used as an excuse for authoring a low-quality translation. In particular:
20
+
- The description can be clarified if necessary.
21
+
- The test suite may employ a different structure from that of other translations. **The [sample](/recipes/authoring/kata-snippets/sample-tests/) and [submission](/recipes/authoring/kata-snippets/full-tests/) tests (including [random tests](/recipes/authoring/kata-snippets/full-tests/#random-tests)) should conform to Codewars quality guidelines.**
22
+
- If serious issues with other language versions are uncovered while translating, they should be fixed in the translation and appropriate issues should be raised about all other concerned languages in the kata discourse.
23
+
24
+
25
+
## Conformity to overall kata idea
26
+
27
+
A translation should substantially change neither the overall idea nor the requirements of the kata. It should be as consistent as possible with the original version in terms of difficulty, required performance, and overall composition. In particular:
28
+
29
+
-**Respect the performance requirements of the kata.** If, for example, it's agreed that the kata should accept only (sub)linear solutions, make sure that the translated tests reject solutions of higher computational complexity. Languages and runtimes differ in terms of performance, so increase/decrease the amount of test cases and input ranges accordingly.
30
+
- If possible, your translation should hold to the **original author's idea**. In case of doubts, you can always ask them for opinions, or use the initial language version as a baseline. However, especially for older kata, it may happen that the initial version (and other older versions) are outdated, and the concept of the kata evolved. You can ask kata contributors or other users for opinion and ideas on how to proceed.
31
+
-**Avoid translations to languages which cannot support the idea of the kata.** For example, there's no use in translating a big integer arithmetic kata to Python, which supports arbitrary precision integers natively. Do not translate kata into languages where the difficulty would significantly differ: from high level languages to NASM or BF, or into languages where the kata becomes much easier because it can be solved with easy to use, advanced features of the standard library (or other available libraries).
32
+
33
+
34
+
## Description
35
+
36
+
-**Respect guidelines for [Writing a Kata Description](/recipes/authoring/kata-snippets/description/).**
37
+
-**Use [Codewars Markdown Extensions](/references/markdown/extensions/#sequential-code-blocks)** to organize language specific parts of the description, if present. Add sections specific to your language if necessary.
38
+
- If possible, **avoid displaying many language variants to the user**. Use [conditional paragraphs](references/markdown/extensions/#conditional-rendering) to display information revelant to the currently viewed language.
39
+
- If a translation can pass tests only when run with some specific language runtime, it should be specified in the description.
40
+
41
+
42
+
## Code components
43
+
44
+
-**Respect the [General Coding Guidelines](/recipes/authoring/kata-snippets/coding-general/), any conventions imposed by your [language](/languages/) and guidelines specific to each component of the kata**:
-**Sample tests and fixed tests should remain consistent between translations**, except in some rare cases when it's not feasible due to inherent differences in programming languages. It can save follow-up questions on the language a user is attempting the kata in when a question on failing tests is raised in the kata discourse.
50
+
- Sometimes, the description is not the best place to put some language specific information. For example, the translator may wish to add some information on arguments, data formats, memory management, etc. and keep the description language-agnostic at the same time. In such cases, it's allowed to put such information as an explanatory comment in the solution setup.
51
+
52
+
53
+
## Review process
54
+
55
+
-**The translation must be reviewed before it's approved.** If the reviewer is not familiar with the language of the translation, they should ask other users for help.
56
+
When issues with the translation are found during its review, they should be reported and discussed in the comment section of the translation so that the translator can be notified and handle them.
57
+
- If a translation has too many issues or cannot be easily fixed, and there's justified concern that it could be approved prematurely while not keeping up to quality standards, **it can be rejected**.
58
+
- After a translation is approved, it becomes **the responsibility of all parties involved: the translator, the user who approved the translation, and the kata author**, to fix any potential issues which might come up later when users attempt to submit their solutions.
0 commit comments