ਸਾਡੀਆਂ 42 ਭਾਸ਼ਾਵਾਂ ਵਿੱਚੋਂ 14 ਵਿੱਚ, "one" ਨਾਮਕ ਬਹੁ-ਵਚਨ ਰੂਪ ਸਿਰਫ਼ 1 ਲਈ ਨਹੀਂ ਹੈ
ਭਾਸ਼ਾਵਾਂ
ਕਿਸੇ ਐਪ ਦਾ ਸਟ੍ਰਿੰਗ "One habit left today" ਦਾ ਇੱਕ ਬਹੁ-ਵਚਨ ਸਾਥੀ ਹੈ, "%d habits left today"। Android ਇਹਨਾਂ ਵਿੱਚੋਂ ਸ਼੍ਰੇਣੀ ਦੇ ਅਧਾਰ 'ਤੇ ਚੋਣ ਕਰਦਾ ਹੈ: ਅੰਗਰੇਜ਼ੀ 1 ਲਈ "one" ਅਤੇ ਬਾਕੀ ਸਾਰਿਆਂ ਲਈ "other" ਵਰਤਦੀ ਹੈ। ਰੂਸੀ ਵਿੱਚ ਸ਼੍ਰੇਣੀ "one" 1, 21, 31, 41 ਆਦਿ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਸਾਡੇ ਅਨੁਵਾਦ ਚੈੱਕ ਨੇ ਇਸ ਗਲਤੀ ਨੂੰ ਇੱਕੋ ਦਿਨ ਦੋ ਵਾਰ ਕੀਤਾ, ਇੱਕ ਵਾਰ ਹਰੇਕ ਦਿਸ਼ਾ ਵਿੱਚ।
ਸਹੀ ਅਨੁਵਾਦ ਜਿਸਨੂੰ ਇਸਨੇ ਰੱਦ ਕਰ ਦਿੱਤਾ
2 ਨਵੰਬਰ ਨੂੰ ਅਸੀਂ ਆਪਣੀ ਅਨੁਵਾਦ ਕਿੱਟ ਨੂੰ ਉਸਦੀ ਉਦਾਹਰਣ ਐਪ 'ਤੇ ਦੁਬਾਰਾ ਚਲਾਇਆ। ਰੂਸੀ "one" ਲਈ ਮਾਡਲ ਨੇ "Осталась %d привычка на сегодня" ਲਿਖਿਆ: "%d habit left today", ਅੰਕ ਦੇ ਨਾਲ। ਸਾਡੇ ਚੈੱਕ ਨੇ ਇਸਦੀ ਤੁਲਨਾ ਅੰਗਰੇਜ਼ੀ "one" ਰੂਪ ਨਾਲ ਕੀਤੀ, ਇੱਕ %d ਲੱਭਿਆ ਜੋ ਅੰਗਰੇਜ਼ੀ ਵਿੱਚ ਨਹੀਂ ਸੀ, ਅਤੇ ਇਸਨੂੰ ਇੱਕ ਘੜਿਆ ਹੋਇਆ ਪਲੇਸਹੋਲਡਰ ਹੋਣ ਕਾਰਨ ਰੱਦ ਕਰ ਦਿੱਤਾ। ਮਾਡਲ ਸਹੀ ਸੀ। 21 ਆਦਤਾਂ ਬਾਕੀ ਰੱਖਣ ਵਾਲੇ ਯੂਜ਼ਰ ਨੂੰ ਇਹ ਰੂਪ ਮਿਲਦਾ ਹੈ, ਇਸਲਈ ਇਸਨੂੰ ਅੰਕ ਦਿਖਾਉਣਾ ਪੈਂਦਾ ਹੈ। ਅਸੀਂ ਚੈੱਕ ਬਦਲ ਦਿੱਤਾ: ਇੱਕ ਰੂਪ ਉਹ ਗਿਣਤੀ ਜੋੜ ਸਕਦਾ ਹੈ ਜੋ ਅੰਗਰੇਜ਼ੀ "other" ਰੂਪ ਵਰਤਦਾ ਹੈ। ਅਗਲੇ ਰਨ ਨੇ ਉਦਾਹਰਣ ਦੇ ਸਾਰੇ 350 ਸਟ੍ਰਿੰਗ ਲਿਖੇ।
ਗਲਤ ਅਨੁਵਾਦ ਜਿਸਨੂੰ ਇਹ ਪਾਸ ਕਰ ਦਿੰਦਾ
ਉਸੇ ਚੈੱਕ ਨੇ ਉਲਟਾ ਵੀ ਪਾਸ ਕਰ ਦਿੱਤਾ। ਜੇ ਮਾਡਲ ਨੇ "Осталась одна привычка" ("one habit left") ਲਿਖਿਆ ਹੁੰਦਾ, ਤਾਂ ਸਟ੍ਰਿੰਗ ਵਿੱਚ ਕੁਝ ਵੀ ਨਹੀਂ ਗੁਆਚਿਆ, ਇਸਲਈ ਇਹ ਪਾਸ ਹੋ ਗਿਆ, ਅਤੇ 21 ਆਦਤਾਂ ਬਾਕੀ ਰੱਖਣ ਵਾਲੇ ਯੂਜ਼ਰ ਨੂੰ ਦੱਸਿਆ ਜਾਂਦਾ ਕਿ ਉਹਨਾਂ ਕੋਲ ਇੱਕ ਹੈ। ਪੁਰਾਣੇ ਨਿਯਮ ਨੇ ਕਿਸੇ ਵੀ "one" ਰੂਪ ਨੂੰ ਅੰਕ ਛੱਡਣ ਦੀ ਆਗਿਆ ਦਿੱਤੀ, ਕਿਉਂਕਿ ਅੰਗਰੇਜ਼ੀ ਵਿੱਚ "one" ਸਿਰਫ਼ 1 ਹੈ।
ਹੁਣ ਚੈੱਕ ਜਾਣਦਾ ਹੈ ਕਿ ਹਰ ਸ਼੍ਰੇਣੀ ਕਿਹੜੇ ਅੰਕਾਂ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ, CLDR ਤੋਂ, ਯੂਨੀਕੋਡ ਬਹੁ-ਵਚਨ ਨਿਯਮ ਜੋ Android ਅਤੇ ICU ਵਰਤਦੇ ਹਨ। ਇੱਕ ਸ਼੍ਰੇਣੀ ਲਈ ਰੂਪ ਜੋ ਕਈ ਅੰਕਾਂ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ, ਨੂੰ ਅੰਕ ਦਿਖਾਉਣਾ ਪੈਂਦਾ ਹੈ। ਇੱਕ ਸਿੰਗਲ ਅੰਕ ਲਈ ਰੂਪ ਇਸਨੂੰ ਛੱਡ ਸਕਦਾ ਹੈ: ਜਰਮਨ "one" ਸਿਰਫ਼ 1 ਹੈ, ਇਸਲਈ ਉੱਥੇ "Noch eine Gewohnheit" ਠੀਕ ਹੈ।
ਜਿੱਥੇ "one" ਸਿਰਫ਼ 1 ਨਹੀਂ ਹੈ
41 ਟਾਰਗੇਟ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚੋਂ 14 ਵਿੱਚ, ਜਿਹਨਾਂ ਬਾਰੇ Babel 2.10 ਵਿੱਚ CLDR ਦਾ ਡਾਟਾ ਜਾਣਦਾ ਹੈ, "one" ਅੰਕ 1 ਤੋਂ ਵੱਧ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ:
- 1, 21, 31, 41…: ਰੂਸੀ, ਯੂਕਰੇਨੀ, ਸਰਬੀਆਈ, ਮੈਸੇਡੋਨੀਆਈ।
- 0 ਅਤੇ 1: ਫਰਾਂਸੀਸੀ, ਪੁਰਤਗਾਲੀ, ਫ਼ਾਰਸੀ, ਅਰਮੀਨੀਆਈ, ਕੰਨੜ, ਪੰਜਾਬੀ, ਅੰਹਾਰਿਕ। 0 ਆਦਤਾਂ ਲਈ "Une habitude restante" ਦਿਖਾਇਆ ਜਾਵੇਗਾ।
- 1 ਅਤੇ 11: ਸਕਾਟਿਸ਼ ਗੈਲਿਕ। 1, 101, 201…: ਸਲੋਵੇਨੀਆਈ, ਜਿਸਦਾ "two" ਵੀ 102 ਅਤੇ 202 ਹੈ।
- ਹਰ ਅੰਕ ਜੋ 4, 6 ਜਾਂ 9 'ਤੇ ਖਤਮ ਨਹੀਂ ਹੁੰਦਾ: ਫ਼ਿਲਪੀਨੋ।
ICU ਸੰਦੇਸ਼ਾਂ ਵਿੱਚ ਆਪਣੀ ਆਪ ਦੀ ਇੱਕ ਸ਼ਾਖਾ ਇਸਨੂੰ ਬਦਲਦੀ ਹੈ। ਸੰਦੇਸ਼ ਵਿੱਚ =0{…} ਦੇ ਨਾਲ, ਫਰਾਂਸੀਸੀ "one" ਕੋਲ ਸਿਰਫ਼ 1 ਬਚਦਾ ਹੈ, ਅਤੇ ਚੈੱਕ ਇਸਦਾ ਧਿਆਨ ਰੱਖਦਾ ਹੈ।
Android ਦੇ ਆਪਣੇ ਸਟ੍ਰਿੰਗਾਂ ਦੇ ਵਿਰੁੱਧ ਚੈੱਕ ਕੀਤਾ ਗਿਆ
ਸ਼ਿਪ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਅਸੀਂ ਇਸ ਨਿਯਮ ਨੂੰ Android ਦੇ ਫ੍ਰੇਮਵਰਕ ਸਟ੍ਰਿੰਗਜ਼ ਵਿੱਚ ਬਹੁ-ਵਚਨ ਸੰਦੇਸ਼ਾਂ 'ਤੇ ਚਲਾਇਆ: ਸਾਡੀਆਂ 39 ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ 897 ਅਨੁਵਾਦ। ਇਸ ਨੇ ਕੋਈ ਗਲਤੀ ਨਹੀਂ ਦੱਸੀ। ਗੂਗਲ ਦੇ ਅਨੁਵਾਦਕਾਂ ਨੇ ਹਰ ਉਸ ਸ਼ਾਖਾ ਵਿੱਚ ਅੰਕ ਰੱਖਿਆ ਜੋ ਕਈ ਅੰਕਾਂ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ, ਰੂਸੀ "one" ਸਮੇਤ, ਭਾਵੇਂ ਅੰਗਰੇਜ਼ੀ ਵਿੱਚ 1 ਲਈ ਆਪਣੀ ਵੱਖਰੀ ਸ਼ਾਖਾ ਹੋਵੇ। ਜਦੋਂ ਅਸੀਂ ਇੱਕ ਰੂਸੀ "one" ਸ਼ਾਖਾ ਵਿੱਚੋਂ ਅੰਕ ਹੱਥੀਂ ਕੱਢਿਆ, ਤਾਂ ਚੈੱਕ ਨੇ ਦੱਸਿਆ ਕਿ ਇਹ ਫਾਰਮ 21, 31, 41 ਅਤੇ 51 ਲਈ ਵੀ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।
ਨਿਯਮ translation-checks 1.2.0 ਵਿੱਚ ਹੈ, GitHub 'ਤੇ ਮੁਫ਼ਤ, ICU ਸੰਦੇਸ਼ਾਂ ਲਈ, ਅਤੇ Polyglot 1.2.0 ਵਿੱਚ Android ਬਹੁ-ਵਚਨਾਂ ਅਤੇ ICU ਸੰਦੇਸ਼ਾਂ ਦੋਵਾਂ ਲਈ। ਇਸ ਹਫ਼ਤੇ ਅਸੀਂ ਜੋ ਹੋਰ ਚੈੱਕ ਜੋੜੇ ਹਨ ਉਹ ਦੂਜੀ ਲਿਪੀ ਦੇ ਅੱਖਰਾਂ ਬਾਰੇ ਨੋਟ ਵਿੱਚ ਹਨ।