ਅਸੀਂ ਹਰ ਮਸ਼ੀਨ ਅਨੁਵਾਦ ਦੀ ਜਾਂਚ ਕੀਤੀ। ਜਾਂਚਾਂ ਹੀ ਉਹ ਹਿੱਸਾ ਸੀ ਜੋ ਗਲਤ ਸੀ।
ਭਾਸ਼ਾਵਾਂ
ਸਾਡੇ ਅਨੁਵਾਦ ਕਿੱਟ ਨੂੰ ਜਾਰੀ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਅਸੀਂ ਇਸਨੂੰ ਇੱਕ ਛੋਟੇ ਉਦਾਹਰਣ ਐਪ 'ਤੇ ਚਲਾਇਆ: 70 ਸਟ੍ਰਿੰਗਜ਼ ਨੂੰ ਛੇ ਫਾਰਮੈਟਾਂ (JSON, Flutter ARB, Android, Apple .strings, gettext ਅਤੇ Markdown) ਵਿੱਚ ਜਰਮਨ, ਰੂਸੀ, ਜਾਪਾਨੀ, ਅਰਬੀ ਅਤੇ ਸਪੈਨਿਸ਼ ਵਿੱਚ ਅਨੁਵਾਦ ਕੀਤਾ, ਸਾਡੀ ਆਪਣੀ ਮਸ਼ੀਨ 'ਤੇ 27-ਬਿਲੀਅਨ-ਪੈਰਾਮੀਟਰ ਵਾਲੇ ਓਪਨ ਮਾਡਲ ਨਾਲ। ਹਰ ਅਨੁਵਾਦ ਕੀਤੀ ਸਟ੍ਰਿੰਗ ਨੂੰ ਲਿਖੇ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਜਾਂਚਾਂ ਵਿੱਚੋਂ ਲੰਘਣਾ ਪੈਂਦਾ ਹੈ। 350 ਵਿੱਚੋਂ ਚਾਰ ਰਿਜੈਕਟ ਕੀਤੀਆਂ ਗਈਆਂ। ਚਾਰੇ ਰਿਜੈਕਸ਼ਨ ਗਲਤ ਸਨ।
ਜਾਂਚਾਂ ਕੀ ਦੇਖਦੀਆਂ ਹਨ
ਇੱਕ ਅਜਿਹਾ ਅਨੁਵਾਦ ਜੋ ਐਪ ਨੂੰ ਤੋੜ ਦੇਵੇ, ਬਿਨਾਂ ਅਨੁਵਾਦ ਦੇ ਹੋਣ ਨਾਲੋਂ ਵੀ ਮਾੜਾ ਹੈ, ਇਸ ਲਈ ਹਰ ਸਟ੍ਰਿੰਗ ਨੂੰ ਆਪਣੇ ਪਲੇਸਹੋਲਡਰ (%1$s, {name}, {{count}}), ਆਪਣੇ ਟੈਗ, ਲਾਈਨ ਬ੍ਰੇਕ ਅਤੇ URL ਬਰਕਰਾਰ ਰੱਖਣੇ ਚਾਹੀਦੇ ਹਨ; ਇਹ ਟਾਰਗੇਟ ਭਾਸ਼ਾ ਦੇ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ; ਇਹ ਖਾਲੀ, ਅਧਿਕ ਲੰਬੀ ਜਾਂ ਅੰਗਰੇਜ਼ੀ ਵਿੱਚ ਛੱਡੀ ਹੋਈ ਨਹੀਂ ਹੋਣੀ ਚਾਹੀਦੀ; ਅਤੇ ਪਲੂਰਲ ਫਾਰਮ ਭਾਸ਼ਾ ਵਿੱਚ ਮੌਜੂਦ ਸ਼੍ਰੇਣੀਆਂ ਨੂੰ ਬਿਲਕੁਲ ਕਵਰ ਕਰਨੇ ਚਾਹੀਦੇ ਹਨ। ਜੋ ਸਟ੍ਰਿੰਗ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਉਸਨੂੰ ਸਮੱਸਿਆ ਦੱਸ ਕੇ ਦੁਬਾਰਾ ਮੰਗਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਜੋ ਦੁਬਾਰਾ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਉਸਨੂੰ ਛੱਡ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਜੋ ਐਪ ਉਸ ਇੱਕ ਸਟ੍ਰਿੰਗ ਲਈ ਅੰਗਰੇਜ਼ੀ ਦਿਖਾਵੇ।
ਚਾਰ ਰਿਜੈਕਸ਼ਨ
- ਜਰਮਨ ਵਿੱਚ "Backups" "Backups" ਸੀ। ਜਾਂਚ ਨੇ ਇਸਨੂੰ ਅਨੁਵਾਦ ਨਹੀਂ ਕੀਤਾ ਹੋਇਆ ਕਿਹਾ। ਜਰਮਨ ਅੰਗਰੇਜ਼ੀ ਸ਼ਬਦ ਵਰਤਦਾ ਹੈ। ਇੱਕ ਇੱਕੋ ਜਿਹਾ ਸ਼ਬਦ ਅਕਸਰ ਸਹੀ ਹੁੰਦਾ ਹੈ; ਦੋ ਜਾਂ ਵੱਧ ਇੱਕੋ ਜਿਹੇ ਸ਼ਬਦ ਨਹੀਂ, ਇਸ ਲਈ ਹੁਣ ਇਹੀ ਨਿਯਮ ਹੈ।
- ਇੱਕ ਰੂਸੀ ਅਤੇ ਇੱਕ ਜਾਪਾਨੀ ਲਾਈਨ ਜਿਸ ਵਿੱਚ ਈਮੇਲ ਪਤਾ ਸੀ ਸਕ੍ਰਿਪਟ ਜਾਂਚ ਵਿੱਚ ਫੇਲ੍ਹ ਹੋਈਆਂ: 60% ਤੋਂ ਘੱਟ ਅੱਖਰ ਸਿਰਿਲਿਕ ਜਾਂ ਜਾਪਾਨੀ ਸਨ, ਕਿਉਂਕਿ
[email protected]ਲਾਤੀਨੀ ਅੱਖਰਾਂ ਵਿੱਚ ਲਿਖਿਆ ਹੈ। ਹੁਣ ਪਤੇ ਪਲੇਸਹੋਲਡਰ ਵਾਂਗ ਮੰਨੇ ਜਾਂਦੇ ਹਨ: ਉਹਨਾਂ ਨੂੰ ਬਦਲੇ ਬਿਨਾਂ ਵਾਪਸ ਆਉਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਉਹ ਅੱਖਰਾਂ ਵਜੋਂ ਨਹੀਂ ਗਿਣੇ ਜਾਂਦੇ। - ਇੱਕ ਜਾਪਾਨੀ ਪਲੂਰਲ ਸੰਦੇਸ਼
{count, plural, =0{連続記録なし} other{{count}日連続}}ਵਜੋਂ ਵਾਪਸ ਆਇਆ। ਬ੍ਰਾਂਚ{連続記録なし}ਵਿੱਚ ਸਪੇਸ ਨਹੀਂ ਹਨ, ਇਸ ਲਈ ਪਲੇਸਹੋਲਡਰ ਪੈਟਰਨ ਨੇ ਇਸਨੂੰ 連続記録なし ਨਾਮ ਵਾਲੇ ਵੇਰੀਏਬਲ ਵਜੋਂ ਲੈ ਲਿਆ। ਪਲੂਰਲ ਸੰਦੇਸ਼ਾਂ ਵਿੱਚ ਬ੍ਰਾਂਚ ਬ੍ਰੇਸ ਹੁਣ ਬਣਤਰ ਹਨ, ਅਤੇ ਪਲੇਸਹੋਲਡਰ ਨਾਮ ASCII ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ।
ਜਦੋਂ ਜਾਂਚਾਂ ਠੀਕ ਕਰ ਦਿੱਤੀਆਂ ਗਈਆਂ, ਤਾਂ ਦੂਜੇ ਰਨ ਵਿੱਚ ਮਾਡਲ ਤੋਂ ਸਿਰਫ਼ ਉਹਨਾਂ ਚਾਰ ਸਟ੍ਰਿੰਗਜ਼ ਮੰਗੀਆਂ ਗਈਆਂ, ਕਿਉਂਕਿ ਬਾਕੀ ਸਭ ਅਨੁਵਾਦ ਮੈਮੋਰੀ ਵਿੱਚ ਸਨ, ਅਤੇ ਸਾਰੀਆਂ 350 ਸਟ੍ਰਿੰਗਜ਼ 45 ਸਕਿੰਟਾਂ ਵਿੱਚ ਲਿਖ ਦਿੱਤੀਆਂ ਗਈਆਂ।
ਉਹ ਹਿੱਸਾ ਜਿਸਦੇ ਫੇਲ੍ਹ ਹੋਣ ਦੀ ਉਮੀਦ ਸੀ ਅਤੇ ਜੋ ਫੇਲ੍ਹ ਨਹੀਂ ਹੋਇਆ
ਬਹੁ-ਵਚਨ ਦੇ ਰੂਪ ਉਹ ਥਾਵਾਂ ਹਨ ਜਿੱਥੇ ਸਧਾਰਨ ਅਨੁਵਾਦ ਟੁੱਟ ਜਾਂਦਾ ਹੈ: ਅੰਗਰੇਜ਼ੀ ਵਿੱਚ one ਅਤੇ other ਹੁੰਦੇ ਹਨ, ਰੂਸੀ ਵਿੱਚ one, few, many ਅਤੇ other, ਅਰਬੀ ਵਿੱਚ ਛੇ ਸ਼੍ਰੇਣੀਆਂ, ਅਤੇ ਜਪਾਨੀ ਵਿੱਚ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਰੂਪ। ਅਸੀਂ ਬਿਲਕੁਲ ਉਹੀ ਸ਼੍ਰੇਣੀਆਂ ਮੰਗੀਆਂ ਜੋ ਟਾਰਗੇਟ ਭਾਸ਼ਾ ਵਿੱਚ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ ਹਰ ਰੂਪ ਦੇ placeholders ਦੀ ਜਾਂਚ ਕੀਤੀ। ਮਾਡਲ ਨੇ ਰੂਸੀ ਲਈ "1 день, 2 дня, 5 дней" ਲਿਖਿਆ ਅਤੇ ਅਰਬੀ ਦੇ ਸਾਰੇ ਛੇ ਰੂਪ। ਸਾਰੇ Android plural ਪਹਿਲੀ ਹੀ ਕੋਸ਼ਿਸ਼ ਵਿੱਚ ਸਾਰੀਆਂ ਪੰਜ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਪਾਸ ਹੋ ਗਏ, ਅਤੇ ਹਰ plural message ਵੀ ਪਾਸ ਹੋਇਆ, ਸਿਵਾਏ ਉਸ ਜਪਾਨੀ ਵਾਲੇ ਦੇ ਜਿਸਨੂੰ ਸਾਡੀ ਜਾਂਚ ਗਲਤੀ ਨਾਲ ਪੜ੍ਹ ਗਈ।
ਜੋ ਕੁਝ ਕੋਈ ਜਾਂਚ ਨਹੀਂ ਫੜ ਸਕਦੀ
ਫਿਰ ਅਸੀਂ ਉਦਾਹਰਣ ਦੇ 22 web strings ਨੂੰ Polyglot ਦੇ ਜਾਣੇ-ਪਛਾਣੇ 42 ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਅਨੁਵਾਦਿਤ ਕੀਤਾ: 924 ਵਿੱਚੋਂ 924 strings ਪਾਸ ਹੋਏ। ਉਨ੍ਹਾਂ ਨੂੰ ਪੜ੍ਹਦਿਆਂ, ਇੱਕ ਚੀਜ਼ ਸਾਹਮਣੇ ਆਈ। ਖਮੇਰ ਵਿੱਚ, "You are offline" ਦਾ ਅਨੁਵਾਦ ਇੱਕ ਅਜਿਹੇ ਵਾਕ ਵਜੋਂ ਆਇਆ ਜੋ "you are online" ਕਹਿੰਦਾ ਹੈ। ਇਹ ਸਹੀ ਲਿਪੀ ਵਿੱਚ ਵਧੀਆ ਬਣਿਆ-ਬਣਾਇਆ ਖਮੇਰ ਹੈ ਅਤੇ ਇਸ ਵਿੱਚ ਕੁਝ ਵੀ ਨਹੀਂ ਖੁੰਝਿਆ, ਇਸ ਲਈ ਹਰ ਜਾਂਚ ਨੇ ਇਸਨੂੰ ਪਾਸ ਕਰ ਦਿੱਤਾ। ਜਾਂਚਾਂ ਉਹ ਫੜਦੀਆਂ ਹਨ ਜੋ ਐਪ ਨੂੰ ਤੋੜਦੀਆਂ ਹਨ; ਗਲਤ ਅਰਥ ਲਈ ਉਹ ਵਿਅਕਤੀ ਚਾਹੀਦਾ ਹੈ ਜੋ ਭਾਸ਼ਾ ਪੜ੍ਹ ਸਕੇ।
ਸਿੱਖ
ਮਸ਼ੀਨ ਦੇ ਆਊਟਪੁੱਟ 'ਤੇ ਆਟੋਮੈਟਿਕ ਜਾਂਚਾਂ ਲਈ ਅਸਲ ਆਊਟਪੁੱਟ ਚਾਹੀਦਾ ਹੈ ਜਿਸ ਨਾਲ ਉਨ੍ਹਾਂ ਦੀ ਤੁਲਨਾ ਕੀਤੀ ਜਾ ਸਕੇ। ਨਕਲੀ ਅਨੁਵਾਦਾਂ ਨਾਲ unit tests ਪਾਸ ਹੋ ਗਏ; ਇੱਕ ਅਸਲ ਮਾਡਲ ਨੇ ਅਸਲ ਜਪਾਨੀ ਲਿਖ ਕੇ ਮਿੰਟਾਂ ਵਿੱਚ ਖਾਮੀਆਂ ਲੱਭ ਲਈਆਂ। Polyglot ਇਹਨਾਂ ਜਾਂਚਾਂ ਨਾਲ, ਠੀਕ ਕੀਤੇ ਹੋਏ, ਅਤੇ ਚਾਰੇ ਕੇਸਾਂ ਲਈ ਟੈਸਟਾਂ ਦੇ ਨਾਲ ਆਉਂਦਾ ਹੈ।