Таблица работа над ошибками по русскому языку: таблица работы над ошибками | Методическая разработка по русскому языку (4 класс) на тему:

Содержание

таблица работы над ошибками | Методическая разработка по русскому языку (4 класс) на тему:

8.

Слово с разделительным мягким знаком

Выпиши слово без ошибок, напиши  два слова на это правило, обведи в кружок мягкий знак, подчеркни согласную перед  ним  и гласную после него

воробьи, листья, крылья

9.

Слово с разделительным твёрдым знаком

Выпиши слово без ошибок, напиши  два слова на это правило, обведи в кружок твёрдый  знак, выдели приставку, подчеркни согласную на которую заканчивается приставка  и гласную  с которой начинается корень

подъезд, съезд, объехал

10.

Пропуск и замена букв

Выпиши слово правильно, подчеркни букву, в написании которой ошибся, раздели слово на слоги и поставь ударение

вилIка

11.

Ь знак в конце и середине слова (обозначает мягкость предшествующего согласного)

Выпиши слово без ошибок, напиши  два слова на это правило, подчеркни мягкий знак и поставь зелёную точку под согласным перед мягким знаком

лось, пень, тень

12.

Правописание приставок (суффиксов)

Выпиши слово без ошибок, напиши  два слова с этой же приставкой(суффиксом), приставку (суффикс)выдели, букву подчеркни

Добежал, дошёл, доехал

13.

Слитное написание приставок

Выпиши слово без ошибок, напиши  два слова с этой же приставкой, приставку выдели

Уход, забег, доехал

14.

Отдельное написание предлогов

Напиши слово с предлогом правильно, между предлогом и словом вставь какое-нибудь слово (вопрос) по смыслу и запиши

На  столе – на большом столе

15.

Непроизносимый согласный

Выпиши слово без ошибок, запиши проверочное слово

солнце – солнышко;

чудесный - чудеса

Работа над ошибками

Памятка для ученика начальной школы

1. Большая буква в начале предложения.

Выпиши предложение правильно. Придумай и напиши ещё одно предложение. Подчеркни заглавную букву.

2. Пропуск буквы.

Выпиши слово. Подчеркни в нём пропущенную букву.

3. Слог.

Раздели слово на слоги. Обозначь гласные.

Запомни! Сколько в слове гласных, столько и слогов.

4. Перенос слова.

Раздели слово на слоги для переноса.

Запомни! При переносе одну букву нельзя оставлять на строке; и. нельзя переносить на новую строку.

5. Мягкий знак ъ, обозначающий мягкость согласных.

Подчеркни мягкий знак ь и согласную перед ним;- Запиши ещё 2 слова на эту орфограмму.

6. Гласные после шипящих.

Выпиши слово правильно. Подбери и запиши ещё 2 слова на эту орфограмму.

7.Сочетания чк, чн, нщ, щн.

Выпиши слово правильно. Подчеркни сочетание. Запиши ещё 2 слова.

8. Ударение.

Выпиши слова. Поставь в них правильно знак ударения.

Передай ритм слова с помощью стука.

9. Безударная гласная в корне, проверяемая ударением (а,о,е,и,я).

Выпиши слово. Поставь ударение. Выдели корень. В корне подчеркни безударную гласную. Обозначь орфограмму. Подбери проверочное слово и запиши рядом.

10. Безударная гласная в корне, не проверяемая ударением.

Напиши слово 3 раза. Запомни, как оно пишется. Обозначь ударение, подчеркни гласную. Запиши два однокоренных слова.

11. Парные звонкие и глухие согласные.

Запиши слово, в котором допущена ошибка, правильно. Проверь согласную.

Запомни! Согласные на конце и в середине слов пишутся так же, как перед гласными.

12. Большая буква в имени собственном.

Выпиши слово правильно. Запиши- ещё 2 слова на эту орфограмму.

Запомни! Имена, отчества и фамилии людей, названия рек, городов, морей, клички животных пишутся с большой буквы.

13. Разделительный мягкий знак ъ.

Выпиши слово правильно. Запиши 2 слова на эту орфограмму. Подчеркни ь знак и гласную букву.

Запомни! Разделительный мягкий знак (ь) пишется после согласных перед гласными буквами е, ё,и,ю, я.

14. Двойные согласные в слове.

Выпиши слово правильно. Раздели слово для переноса. Запиши ещё два однокоренных слова. Подчеркни двойную согласную.

15. Знаки препинания в конце предложения (. ?!...).

Выпиши предложение правильно. Придумай своё или найди в учебнике предложение с таким же знаком и запиши. Подчеркни знак.

16. Разбор предложения.

Выпиши предложения. Подчеркни главные члены. Обозначь части речи. Выпиши слова парами с вопросами.

17. Состав слова.

Выпиши слово. Разбери его по составу.

18. Правописание непроизносимых гласных.

Прочитай слово Подбери к нему несколько однокоренных слов. Выдели корень. Проверь непроизносимую согласную. Обозначь орфограмму.

19. Гласные и согласные е приставках.

Выпиши слово правильно. Выдели в нём приставку. Запиши ещё 2 слова с этой же приставкой.

20. Правописание приставки со словом..

Выпиши слово.Выдели приставку. Образуй от этого слова однокоренные слова с разными приставками.

Запомни! Приставка - это часть слова. Она пишется слитно со словом.

21. Правописание предлога со словом (орфограмма-пробел).

Из предложения, в котором допущена ошибка, выпиши слово вместе с предлогом. Докажи, что предлог со словом пишется отдельно. Обозначь орфограмму-пробел.

Запомни! Предлог - это отдельное слово. Не смешивай приставку с предлогом. У глаголов нет предлогов.

22. Разделительный твёрдый знак ъ.

Выпиши слово правильно. Запиши ещё 2 слова с этой орфограммой. Выдели приставку. Подчеркни гласную.

Запомни! Разделительный твердый знак ъ пишется только после приставок, которые оканчиваются на согласную, перед гласными буквами е, ё, ю, я.

23.

Мягкий знак ъ на конце существительных после шипящих.

Выпиши слово правильно. Определи род. Запиши ещё 2 слова с этой орфограммой.

24. Соединительные гласные в сложных словах (о,е).

Выпиши слово правильно. Выдели корни. Подчеркни гласную. Запиши ещё 1 слово на эту орфограмму.

25. Не с глаголом, (орфограмма-пробел).

Выпиши глагол с не. Запиши ещё 2 слова на это правило. Подчеркни орфограмму.

26. Однородные члены предложения.

Выпиши предложение. Обозначь однородные члены и слово, от которого они зависят. Вспомни, что ты знаешь о знаках препинания и союзах между однородными членами. Выполни схему предложения.

27. Правописание безударных падежных окончаний имён существительных.

Выпиши существительное. Поставь его в начальную форму. Определи тип склонения, падеж и число. Выдели окончание. Подбери и запиши свой пример.

28. Правописание безударных. падежных окончаний имён прилагательных.

Выпиши прилагательное вместе с существительным, к которому оно относится. Поставь к прилагательному вопрос от существительного. Определи род, число и падеж прилагательного по существительному. Выдели окончание прилагательного.

29. Предлог с местоимением, (орфограмма-пробел).

Выпиши из предложения местоимение с предлогом. Запиши ещё 2 примера на эту орфограмму.

Запомни! Предлоги с местоимениями (как и с именами существительными) пишутся отдельно.

30. Мягкий знак ъ на конце глаголов 2-го лица единственного числа настоящего времени.

Выпиши глагол правильно. Запиши ещё 2 глагола на эту орфограмму.

Запомни! На конце глаголов 2-го лица единственного числа пишется мягкий знак ь.

31. Правописание безударных личных окончаний глаголов.

Выпиши глагол правильно. Поставь ударение. Поставь глагол в начальную (неопределённую) форму. Посмотри на гласную перед -тъ. Определи спряжение глагола и гласную, которую следует писать в окончании глагола единственного и множественного числа.

32. Сложное предложение.

Выпиши правильно. Подчеркни грамматические основы. Нарисуй схему. Подчеркни запятую.

 

Памятка работы над ошибками по русскому языку. 1–4-е классы

В гостях у деда.

Трапа бежыт через лесок. Весело шумят ёлочьки. Алёша и яша идут домой. Мальчики были в гостях удеда. Дет работает леснеком. Рибята сажали с дедом маленькие дупки.

№ орфограммы

На какое правило сделана ошибка

Как исправлять ошибку

Образец

1.

Словарное слово

Выпиши слово без ошибок 3 раза, подчеркни букву, которую надо запомнить, поставь ударение

язык, язык, язык

2.

Гласные после шипящих:
жи-ши,
ча-ща, чу-щу.
Сочетание
чк, чн, чт, нч, рщ, щн, нщ

Выпиши слово без ошибок, подчеркни сочетание, напиши два слова на это правило

удача, туча, чай;
ручка, точка, ночка

3.

Заглавная буква в именах собственных

Выпиши слово без ошибок, подчеркни заглавную букву, напиши  два слова на это правило

Москва, Орёл, Киев

4.

Перенос слов, деление слова на слоги

Выпиши слово, раздели слово на слоги и для переноса

уIчеIник – уче-ник

5.

Безударные гласные в корне слова

Выпиши слово без ошибок, подбери и запиши проверочное слово (безударный гласный должен стать ударным)

грибы – гриб,
зима - зимушка

6.

Правописание звонких и глухих согласных в корне

Выпиши слово без ошибок, подбери и запиши проверочное слово (после парного согласного должен стоять гласный)

снег – снега,
ягодка - ягода

7.

Удвоенные согласные.

Выпиши слово без ошибок, подчеркни удвоенные согласные, напиши  два слова на это правило

класс, аллея, тонна

8.

Слово с разделительным мягким знаком

Выпиши слово без ошибок, напиши  два слова на это правило, обведи в кружок мягкий знак, подчеркни согласную перед  ним  и гласную после него

воробьи, листья, крылья

9.

Слово с разделительным твёрдым знаком

Выпиши слово без ошибок, напиши  два слова на это правило, обведи в кружок твёрдый  знак, выдели приставку, подчеркни согласную на которую заканчивается приставка  и гласную  с которой начинается корень

подъезд, съезд, объехал

10.

Пропуск и замена букв

Выпиши слово правильно, подчеркни букву, в написании которой ошибся, раздели слово на слоги и поставь ударение

вилIка

11.

Ь знак в конце и середине слова (обозначает мягкость предшествующего согласного)

Выпиши слово без ошибок, напиши  два слова на это правило, подчеркни мягкий знак и поставь зелёную точку под согласным перед мягким знаком

лось, пень, тень

12.

Правописание приставок ( суффиксов)

Выпиши слово без ошибок, напиши  два слова с этой же приставкой(суффиксом), приставку (суффикс)выдели, букву подчеркни

Добежал, дошёл, доехал

13.

Слитное написание приставок

Выпиши слово без ошибок, напиши  два слова с этой же приставкой, приставку выдели

Уход, забег, доехал

14.

Отдельное написание предлогов

Напиши слово с предлогом правильно, между предлогом и словом вставь какое-нибудь слово (вопрос) по смыслу и запиши

На  столе – на большом столе

15.

Непроизносимый согласный

Выпиши слово без ошибок, запиши проверочное слово

солнце – солнышко;
чудесный - чудеса

16.

Ь знак после шипящих

Выпиши слово, объясни орфограмму, запиши два слова на это правило

а) ночь (сущ., ж.р., ед.ч.), тишь, дочь;
б) с крыш (сущ. , мн.ч.), много туч, от дач;
в) жечь (глаг., в нач. ф.), стеречь, лечь;
г) пишешь (глаг., 2 л., ед. ч.), решаешь, рисуешь

17.

Частица не с глаголом

Выпиши слово с частицей правильно,  запиши два слова на это правило

не  говорит, не   летает, не  смеётся

18.

Сложные слова

Выпиши слово, выдели корни, подчеркни соединительную гласную

ледокол

19.

Безударные падежные окончания имён существительных

Выпиши слово, выдели окончание, объясни:
- мн. ч., падеж;
- ед. ч., склонение., падеж

20.

Безударные падежные окончания имён прилагательных

Выпиши имя прилаг. вместе с именем сущ., задай вопрос, выдели окончание

21.

Безударные падежные окончания  глаголов

Выпиши глагол, выдели окончание, определи спряжение

 

Памятка по работе над ошибками. ГУО "Средняя школа № 2 г. Светлогорска"

РАБОТА   НАД    ОШИБКАМИ    ПО    РУССКОМУ ЯЗЫКУ

1.    ПРОПУСК, ЗАМЕНА БУКВ.

Напиши слово правильно, подчеркни букву, поставь ударение, запиши это слово ещё раз, разделяя его на слоги.

 Делай так: кошка, кош-ка.                                                   ,

2.   ЗНАКИ ПРЕПИНАНИЯ В КОНЦЕ ПРЕДЛОЖЕНИЯ.

  Выпиши предложение, поставь нужный знак, подчеркни его. Запиши еще одно пред- ложение с таким знаком.

Делай так: Шёл дождь. Я учу уроки.  Или: Кто разбил чашку? Ты получил отметку?

Запомни! Предложение — это группа слов, которая выражает законченную мысль. В конце предложения ставится точка, вопросительный или восклицательный знак.

3.   ЗАГЛАВНАЯ БУКВА В НАЧАЛЕ ПРЕДЛОЖЕНИЯ.

Напиши предложение правильно. Придумай и напиши ещё 1 предложение,

          подчеркни заглавную букву.

Делай так: Мальчики играли во дворе. Им весело.

Запомни! Начало предложения всегда пишется с заглавной буквы.

         4. БОЛЬШАЯ БУКВА В СЛОВАХ.

Напиши слово правильно, запиши ещё 3 слова на это правило, подчеркни большую букву.

Делай так: Марина, Волга, Минск, Анна.

Запомни!  Названия рек, городов, деревень, имена людей, клички животных    

                пишутся с   большой буквы.

5. БЕЗУДАРНАЯ ГЛАСНАЯ В КОРНЕ СЛОВА.

Напиши слово правильно, запиши проверочное слово, запиши ещё 3 слова на это правило.

Делай так: моря море, земля, окно, стена.

Запомни! Написание безударной гласной в корне слова надо проверять по сильной по­зиции звука. Для этого изменяем слово так, чтобы на этот гласный падало ударение.

6. СЛОВАРНЫЕ СЛОВА.

     Напиши слово по слогам, поставь ударение, запиши ещё 2 однокоренных слова.

Делай так: я-зык, языковой, языкастый.

Запомни! Написание таких слов надо запомнить или посмотреть в словаре.

7.         ЗВОНКИЕ И ГЛУХИЕ СОГЛАСНЫЕ В КОРНЕ СЛОВ.

Напиши слово правильно, запиши проверочное слово, запиши ещё 3 слова на это правило.

Делай так: завод заводы, нож, мороз, лес.

Запомни! Написание парных звонких и глухих согласных в корне слов надо проверять.  Для этого нужно изменить слово или подобрать  однокоренное   слово так, чтобы  проверяемый согласный оказался в сильной позиции.

8.         ПРЕДЛОГИ.

Напиши предлог со словом, к которому он относится, придумай и запиши ещё 3 сло­ва с предлогами.

Делай так: у берега, у реки, на столе, в школе.

Запомни! Предлоги  к, по, в, на, за, с, под, про, для, у и др. пишутся отдельно от слова. Меж­ду предлогом и словом можно вставить другое слово (у самого берега, на обеденном столе).

9.         СОЮЗЫ.

Напиши слова; соединённые союзом, запиши ещё 1 пару слов, соединённых союзом, или составь предложение с такими словами.

Делай так: ручка и карандаш, шапка и шарф.

Запомни! Союзы а, и, но, да пишутся отдельно от слова.

    10.   СОЧЕТАНИЯ ЖИ, ШИ; ЖЕ, ШЕ; ЧА, ЩА; ЧУ, ЩУ.

Напиши слово правильно, разделяя его на слоги, поставь ударение. Запиши ещё 3

сло­ва с этим сочетанием.

Делай так: щу-ка, ышу, чышу, глашу.

Запомни! Жи, ши пиши с буквой и. Же, ше пиши с буквой е. Ча, ща пиши с

 буквой а.Чу, щу пиши с буквой у.

11.       МЯГКИЙ ЗНАК, ОБОЗНАЧАЮЩИЙ МЯГКОСТЬ СОГЛАСНЫХ.

Напиши слово правильно, запиши ещё 3 слова, подчеркни мягкий знак и согласную, мягкость которой он обозначает.

Делай так: мальчик, лось, огоньки, день.

Запомни! Мягкий знак пишется после согласной буквы и вместе с ней обозначает мягкий согласный звук. На конце слова мягкость согласных звуков обозначается мягким знаком.

12.       РАЗДЕЛИТЕЛЬНЫЙ МЯГКИЙ ЗНАК.

Напиши слово правильно, запиши ещё 3 слова с разделительным мягким знаком, под­черкни три буквы — согласную, разделительный мягкий знак, гласную.

Делай так: платье, вьюга, счастье, раздолье.

Запомни! Разделительный мягкий знак пишется в середине слова после согласных перед буквами и, е, ё, ю, я. Он показывает, что согласный звук не сливается с гласным.

13.       РАЗДЕЛИТЕЛЬНЫЙ ТВЁРДЫЙ ЗНАК.

Напиши слово правильно, запиши ещё 3 слова с твёрдым знаком, выдели приставку. Подчеркни букву после твёрдого знака.

Делай так: подъём, объявление, съезд, предъюбилейный.

Запомни! Разделительный твёрдый знак пишется после приставок, которые оканчива­ются на согласный, перед буквами е, ё, ю, я. Он показывает, что согласный звук не слива­ется с гласным.

     

    14.    ДВОЙНАЯ СОГЛАСНАЯ.

Напиши слово правильно, запиши ещё 3 слова с двойными согласными. Подчеркни  двойные согласные.

Делай так: Анна, ванна, Алла, масса.

  15. ПЕРЕНОС СЛОВА

Напиши слово правильно, разделяя его для переноса, запиши ещё 3 слова, разделяя их для  пепеноса.

Делай так: ки-но, озе-ро, стра-на, пи-рог.

Запомни! Слова переносятся по слогам. Нельзя оставлять в конце строки или перено­сить на другую строку одну букву. Переноси так: малъ-ник, подъ-езд, вой-на, под-бить, жуж-жатъ. Некоторые слова переносить нельзя: класс, осень, столб.

16.       СОЧЕТАНИЯ ЧК, ЧН, НЩ, РЩ, ЧТ, ЩН.

Напиши слово правильно, запиши ещё 3 слова с данными сочетаниями.

Делай так: ручка, ночка, речка, печка.

Запомни! Сочетания чк, чк, нщ, рщ, чт, щн пишутся без мягкого знака.

17.       НЕПРОИЗНОСИМЫЕ СОГЛАСНЫЕ.

   Напиши слово правильно, запиши ещё 2 пары слов на это правило.

  Делай так: честный — честь, звёздный — звезда, солнце — солнышко.

   Запомни! В некоторых словах согласные т, д, л, в пишутся, но не произносятся. Эти сло­ва нужно проверять. Если в сочетании согласных при изменении слова один из перечислен­ных согласных не слышится, писать его не нужно. Например: чудесный — чудеса.

18.       МЯГКИЙ ЗНАК ПОСЛЕ ШИПЯЩИХ В ИМЕНАХ СУЩЕСТВИТЕЛЬНЫХ.

Напиши слово правильно, запиши ещё 3 слова на это правило.

Делай так: мышь ж. р., ночь, дочь, печь.

Запомни! В именах существительных женского рода в именительном падеже в конце слова после шипящих пишется мягкий знак. В именах существительных мужского рода мягкий знак не пишется. Например: врач, грач, нож, шалаш.

19.       БЕЗУДАРНОЕ ПАДЕЖНОЕ ОКОНЧАНИЕ ИМЁН СУЩЕСТВИТЕЛЬНЫХ.

Напиши слово с правильным окончанием, обозначь падеж, склонение, запиши ешё 2 — 3 слова с таким окончанием.

Делай так: на ветке — П. п., 1-е скл.; на озере, на стене.

Запомни! Чтобы правильно написать безударное окончание существительного, нужно поставить слово в начальную форму, определить склонение, проверить окончание по су­ществительному того же склонения и падежа, но с ударным окончанием. Для проверки используются слова: 1-е скл. — стена, 2-е скл. — окно,   3-е скл. —рожь.

         20.         ОКОНЧАНИЕ ИМЁН ПРИЛАГАТЕЛЬНЫХ.

Напиши слово с правильным окончанием, поставь вопрос, запиши ешё 2 — 3 слова с таким окончанием.

Делай так: по глубокому (снегу) — какому?, жадному, сладкому.

Запомни! Чтобы правильно написать безударное окончание имени прилагательного, нужно поставить к нему падежный вопрос или заменить его именем прилагательным та­кого же рода и числа с ударным окончанием

        21.          БЕЗУДАРНОЕ ЛИЧНОЕ ОКОНЧАНИЕ ГЛАГОЛА.

Напиши слово правильно, определи, почему надо написать данное окончание, запи­ши ещё 2 — 3 слова с этим окончанием.

Делай так: путаешь — путать (I спр.), бегаешь, прыгаешь.

Запомни! Чтобы правильно написать безударное личное окончание глагола, нужно определить его спряжение.

        22.          НЕ С ГЛАГОЛАМИ.

Напиши правильно глагол и частицу не, запиши ещё 2 — 3 глагола с частицей не. Делай так: не бегал, не смотрел, не нашёл.

Запомни! Не с глаголами пишется отдельно.

        23.          МЯГКИЙ ЗНАК НА КОНЦЕ ГЛАГОЛОВ.

Напиши слово правильно, запиши еще 2 — 3 слова на это правило.

Делай так: играешь, думаешь, пишешь.

Запомни' На конце глаголов настоящего и будущего времени ед. ч. 2-го лица пишется мягкий знак.

         24.         НАПИСАНИЕ ГЛАГОЛОВ НА     –ТСЯ    И    -ТЬСЯ.

Напиши слово правильно, поставь вопрос, запиши ещё 2 — 3 слова на это правило.

Делай так: одеться — что сделать ?, умыться, причесаться.

Запомни! Чтобы правильно писать глаголы на -тся и -ться, нужно поставить вопрос           (что делать? что делает?). Если в вопросе есть мягкий знак, то и у глагола перед -ся пишется мягкий знак. Например: что делать? — умываться; что делает? — умывается.

        25.          ПРАВОПИСАНИЕ ПРИСТАВОК.

Напиши слово правильно, выдели приставку, запиши ещё 3 слова с этой приставкой.

Делай так: пошёл, побежал, посмотрел, полить.

Запомни! Приставка — это значимая часть слова, которая стоит перед корнем и служи для образования новых слов. Приставка со словом пишется слитно.Написание    приставок надо запомнить: за-, на-, над-, с-, у-, во-, по-, под-, об-, от-, про-.

        26.          ПРАВОПИСАНИЕ СУФФИКСОВ.

Напиши слово правильно, выдели суффикс, запиши ещё 3 слова с таким суффиксом.

Делай так: домовой, садовый, часовой, береговой.

Запомни! Суффикс — это значимая часть слова, которая находится после корня и    служит для образования новых слов. Написание суффиксов надо запомнить: -ик-, -ок--ов-, -ек-, -ник-, -ист-, -ник- и др.

        27.          ОДНОРОДНЫЕ ЧЛЕНЫ ПРЕДЛОЖЕНИЯ.

Напиши предложение правильно, подчеркни знаки препинания.

Пишичитай: Работа над ошибками на уроках русского языка: быть или не быть?

   "Нужно ли делать работу над ошибками?" - с таким вопросом обратились ко мне пятиклассники, после того как получили тетради по русскому языку после первой проверки. ПризнАюсь: смысла в переписывании набело слов не вижу. Да и разве он есть? Чаще получается как в анекдоте: "Мама разрешила пойти на улицу сыну тогда, когда он сто раз напишет правильно слово ушёл. Мальчик выполнил задание мамы. Уходя на улицу, оставил записку: "Мама, я всё сделал и ушол гулять". 

   Ошибки на письме (и орфографические, и пунктуационные) - беда нашего века, века информационных технологий. Дети, в основном, общаются в социальных сетях, где никто не следит за орфографией. Родители ведь тоже там. И, к сожалению, тоже пишут неграмотно. Если поправляешь уже достаточно взрослого человека, то нарываешься на грубость и хамство (проверено на собственном опыте). А однажды мне так и написали: "Интернет-общение допускает безграмотное письмо. И я не у вас на уроке, так что идите лучше тетради проверяйте". С тех самых пор зареклась кого-либо исправлять. Читаю комментарии, вздыхаю, грущу, негодую, но... не исправляю. А может, взрослые так часто пишут безграмотно, потому что не делали в школе работу над ошибками? 

   Но вернусь к вопросу: быть или не быть работе над ошибками? В бОльшей степени, конечно, быть. Но не в таком виде, в каком существует сегодня. Традиционно: ученик выписывает слово, в котором сделал ошибку, возможно, прописывает строчку-вторую. Или частенько я делаю так после проведения диктанта (у нас же, учителей русского языка и литературы, есть целый урок после проведения диктанта на работу над ошибками):

Правильно пишу Привожу примеры
Непроизносимая согласная (запоминаю) Известный (весть), чудесный (чудеса)
Буквы и, у, а после шипящих Снежинка, чудо
   Но и такая форма меня, мягко говоря, не устраивает. И поэтому с этого года решила вернуться к тому, что использовала 8 лет назад. Тогда, прочитав в газете "Русский язык" (приложение к "Первому сентября") статью Марии Владимировны Ганькиной, обратила внимание на нетрадиционный подход к работе над ошибками и начала работать так же. Всё просто.    "В ученических тетрадках вместо привычных символов (палочка – орфографическая ошибка, галочка – синтаксическая (пунктуационная - О.Н.) ошибка) на полях появляются разные цифры, которые проставляет учитель при проверке. Каждой ошибке строго соответствует та или иная цифра. При этом учитель может либо исправить ошибку сам, либо просто зачеркнуть её, либо вовсе ничего с ней не делать – в зависимости от хозяина тетрадки или своего рабочего замысла. Но на полях, в соответствующей данной ошибке строке, непременно появится цифра, отсылающая ученика к «Проработке ошибок и неточностей»." (Источник)
   В 2009 г. все пятиклассники получили от меня вот такие листы:  

   И с этого года у пятиклассников начинаю проверять я тетради строго в соответствии со всем написанным. То есть тетрадь может выглядеть так:

   Что делать с теми орфограммами и пунктограммами, которые ещё не изучали? Всё на усмотрение учителя. Я точно знаю, что буду выставлять цифру-ошибку, но не буду считать эту ошибку (орфограмма или пунктограмма ещё не изучены). Хочет-не хочет, а обратиться к её исправлению ученик. Но работа над ошибками должна быть регулярной.
   Для выполнения такого рода работы над ошибками нужно иметь отдельную тетрадь, куда будем записывать слова и предложения. И тетрадь эту носить на уроки ежедневно. Пишет ученик на доске, учитель, просматривая тетрадь, диктует слово или предложение из тетради ученика. 
   Конечно, хорошо было бы, если бы ВСЕ учителя исправляли ошибки в тетрадях учеников. Ведь грамотное письмо и грамотная речь - это прерогатива не только учителей русского языка и литературы.
Уважаемые пятиклассники и ваши родители (законные представители)!Прошу вас сохранить таблицу "Проработка ошибок и неточностей". С понедельника, 17 сентября, на полях своих тетрадей вы увидите не галочки и палочки, а цифры.

Работа над ошибками памятка 1

Методическое пособие по русскому языку в помощь ученикам и их родителям.
2 – 4 класс
Работа над ошибками

1. ПРОПУСК, ЗАМЕНА, ПЕРЕСТАНОВКА БУКВ
1) Сделай полный звукобуквенный анализ слова
Л а м п а
2. БОЛЬШАЯ БУКВА В НАЧАЛЕ ПРЕДЛОЖЕНИЯ
1) Написать предложение правильно.
2)Подчеркнуть большую букву в начале предложения и точку в конце.
Дети идут в школу.
3.БОЛЬШАЯ БУКВА В ИМЕНАХ, ФАМИЛИЯХ, ОТЧЕСТВАХ ЛЮДЕЙ, КЛИЧКАХ ЖИВОТНЫХ, В НАЗВАНИЯХ ГОРОДОВ, СЕЛ, РЕК, ОЗЕР, МОРЕЙ
1) Написать слово правильно.
2) Подчеркнуть первую букву.
3) Придумать и записать еще два слова на это правило.
Ира, Коля, Сережа.
4.ПЕРЕНОС СЛОВА
1) Найти и обозначить гласные буквы в слове.
2) Показать все способы переноса слова.
Лужайка, лу - жайка, лужай - ка.
3) Если слово не переносится, работать так:
Олень - не переносится.
Конь - не переносится.
5. МЯГКИЙ ЗНАК - ПОКАЗАТЕЛЬ МЯГКОСТИ СОГЛАСНЫХ
1) Напиши слово подчеркни согласную с ь.
2)Сделай неполный звукобуквенный разбор слова, дать характеристику звуку нь ( согласный, звонкий непарный, мягкий парный)
3) Напиши еще два слова на это правило.
К о н ь к и, нь ( согласный, звонкий непарный, мягкий парный),пеньки, деньки.
6.СОЧЕТАНИЕ жи, ши, ча, ща, чу, шу, чк, чн.
1) Написать слово правильно.
2) Подчеркнуть в нем сочетание.
3) Придумать и записать еще два слова с таким сочетанием.
Роща, чаща, щавель.
7.БЕЗУДАРНЫЕ ГЛАСНЫЕ, НЕ ПРОВЕРЯЕМЫЕ УДАРЕНИЕМ (СЛОВАРНЫЕ СЛОВА)
1) Написать слово правильно три раза.
2) Поставить ударение.
3) Подчеркни буквы, которые надо помнить.
Народ, народ, народ.
8.ПРЕДЛОГИ
1) Написать слово с предлогом верно.
2) Придумать и записать с этим предлогом еще два слова.
На небе, на земле, на реке.
9. РАЗДЕЛИТЕЛЬНЫЙ Ь.
1) Написать слово верно. Подчеркнуть разделительный Ь и буквы, которые он разделяет. Написать три слова на это правило.
Листья, сучья, обезьяна, полью.
10. ПАРНЫЕ ЗВОНКИЕ И ГЛУХИЕ.
1) Устно проверить слово.
2) Написать его правильно вместе с проверочным словом. Обозначить корень. Придумать три слова на это правило.
Морозы - мороз, глаз, прорубь, грязь.
Дорожек - дорожки, сказка, ошибка, пирожки.
11.МЯГКИЙ ЗНАК В КОНЦЕ СУЩЕСТВИТЕЛЬНЫХ ПОСЛЕ ШИПЯЩИХ
1) Написать слово правильно, определить род.
2) Придумать и записать три слова на это правило.
Рожь - ж.р., ночь, печь, мышь.
Плащ - м.р., обруч, плющ, нож.
12.РАЗДЕЛИТЕЛЬНЫЙ Ъ ЗНАК
1) Написать слово правильно.
2) Разобрать его по составу, придумать и записать три слова.
Подъехал, въезд, съел, объедки.
13.ГЛАСНЫЕ И СОГЛАСНЫЕ В ПРИСТАВК
1 )Написать слово верно.
2) Придумать и записать три слова с такой приставкой.
Доехал, дописал, добежал, добрел.
Сделал, срезал, сбил, сжег.
14.НЕПРОИЗНОСИМЫЕ СОГЛАСНЫЕ
1) Проверить слово.
2) Написать проверочное слово, а потом слово, в котором ошибка.
3) Придумать и записать три слова на это правило.
Трость - тростник, счастливый свистнуть, местность.
15.ПРАВОПИСАНИЕ СУФФИКСОВ
1) Написать слово, выделить суффикс.
2) Придумать с этим суффиксом трудные слова.
Чистенький, беленький, серенький, маленький.
16.БЕЗУДАРНАЯ ГЛАСНАЯ В КОРНЕ СЛОВА, ПРОВЕРЯЕМАЯ УДАРЕНИЕМ
1) Проверить слово ударением.
2) Написать проверочное слово, а потом написать слово, в котором сделал ошибку /неверно написал гласную в корне.
3) Придумать и записать несколько однокоренных слов.
Боль - больной, больница, болит, болящий.
Кормить - кормит, кормление, кормушка, накормил.
17.ДВОЙНЫЕ СОГЛАСНЫЕ
1) записать слово, в котором ошибся три раза, подчеркнуть двойную согласную.
2) Придумать и записать три слова на это правило.
Русский, русский, русский, жужжат, аллея, класс.

Как научить ребенка читать?

Чтобы ребенок учился с охотой, надо дать ему почувствовать, что читать совсем не трудно и даже интересно. Поэтому нужно облегчить насколько возможно начало обучения. Сначала нужно начать учить буквы, не обязательно все.
Для того, чтобы было легче учиться читать, в обычной тонкой тетради в клетку печатными буквами нужно написать всевозможные сочетания согласных с какой-нибудь гласной одной (ка, ва, ма, на), исключив все труднопроизносимые буквы (у каждого ребенка свои) и буквы, которые малыш просто не любит или не знает. Итак, для всех гласных, кроме э (встречается редко).
Несколько дней нужно заниматься составленными слогами, добиваясь уверенного чтения. Затем из этих же самых слогов составить простые слова (небо, вода, зима). Каждый день нужно читать по 5-7 новых слов и повторять пройденное. Когда возможности урезанного алфавита будут исчерпаны, нужно постепенно вводить слоги с исключенными когда-то буквами. Но по-прежнему все слова должны быть составлены из двух открытых слогов.
Дальше нужно перейти к словам, состоящим из одного закрытого слога (кот, дом, лес, дуб). А затем к более сложному варианту, добавив согласную в конце слова (мост, лист, барс), в начале (глаз, крот, хвост). Потом нужно комбинировать открытые слоги с закрытыми.
Каждому типу слов нужно отдать целиком одно или несколько занятий. Для каждого типа слов в тетради нужно отвести отдельные страницы. Слова можно найти в книгах С. Маршака, А. Барто, В. Сутеева, К. Чуковского, названия животных, имена любимых героев. Постепенно нужно добираться до слов, состоящих из двух, трех и более слогов, Хорошо освоив чтение отдельных слов, нужно читать небольшие фразы, вернувшись к школьной «Азбуке».
Но тексты в «Азбуке» неинтересны. Чтобы заинтересовать ребенка, можно использовать комиксы, русские народные сказки, книжки-малышки и т.д.

15

Созвездие отличников - Памятка для ученика начальной школы "Работа над ошибками"

 

1.Большая буква в начале предложения.

Выпиши предложение правильно. Придумай и напиши ещё одно предложение. Подчеркни заглавную букву.

       Делай так: Выпал пушистый снег. Дети рады.

 

2.Пропуск буквы.

Выпиши слово. Подчеркни в нём пропущенную букву.

       Делай так: звонок, ученик.

 

3.Слог.

Раздели слова на слоги. Обозначь гласные.

       Делай так: у| чи| тель - 3 сл.

Запомни! Сколько в слове гласных, столько и слогов.

 

4.Перенос слова.

Раздели слово на слоги для переноса.

       Делай так: оси-на.

Запомни! При переносе одну букву нельзя оставлять на строке и нельзя переносить на новую строку.

 

5.Мягкий знак ь, обозначающий мягкость согласных.

Подчеркни мягкий знак ь и согласную перед ним. Запиши ещё 2 слова на эту орфограмму.

       Например: ель, тень, пень, коньки, мальчик, пальто.

 

6.Гласные после шипящих.

Выпиши слово правильно. Придумай и запиши ещё 2 слово на эту орфограмму.

Делай так : малыши, карандаши, ежи, роща, туча.

 

7.Сочетания чк, чн, нщ, щн

Выпиши слово правильно. Подчеркни сочетание. Запиши ещё 2 слова.

       Например: дочка, речка, мощный

 

8.Ударение.

Выпиши слово. Поставь в них правильно знак ударения.

       Например: алфавит, азбука, портфель.

 

9. Безударная гласная в корне, проверяемая ударением(а, о, е, и, я).

Выпиши слово. Поставь ударение. Выдели корень. В корне подчеркни безударную гласную. Обозначь орфограмму. Подбери проверочное слово и запиши рядом.

       Делай так:  сады -сад

                           волна - волны

                           червивый - червь.

10. Безударная гласная в корне, не проверяемая ударением.

Напиши слово 3 раза. Запомни, как оно пишется. Обозначь ударение, подчеркни гласную. Запиши 2 однокоренных слова.

       Например: ягода, ягода, ягода, ягодка, ягодный.

11.Парные звонкие и глухие согласные.

Запиши слово, в котором допущена ошибка, правильно. Проверь со­гласную.

       Делай так: морозы - мороз, ягода - ягодка.

Запомни! Согласные на конце и в середине слова пишутся так же, как и перед гласными.

 

12. Большая буква в имени собственном.

       Выпиши слово правильно. Запиши ещё 2 слова на эту орфограмму.

       Например: Илья, Петров, Мурка, Волга, Химки.

Запомни! Имена, отчества, фамилии людей, названия рек, городов, морей, клички животных пишутся с большой буквы.

 

13.Разделительный мягкий знак.

Выпиши слово правильно. Запиши ещё 2 слова на эту орфограмму. Подчеркни мягкий знак ь и гласную букву.

       Например: вьюга, листья, соловьи.

Запомни! Разделительный мягкий знак (ь) пишется после согласных перед гласными буквами е, ё, и я, ю.

 

14. Двойные согласные в слове.

Выпиши слово правильно. Раздели слово для переноса. Запиши ещё 2 од­нокоренных слова. Подчеркни двойную согласную.

       Делай так: группа, груп-па, групповой, подгруппа.

 

15. Знаки препинания в конце предложения ( . ? ! ...)

Выпиши предложение правильно. Придумай своё или найди в учебнике предложение с таким же знаком и запиши. Подчеркни знак.

       Например: Слава нашей Родине! Слава труду!

16. Разбор предложения.

Выпиши предложение. Подчеркни главные члены. Обозначь части речи. Выпиши слова парами с вопросами.

                                сущ.                   глагол

       Делай так: Седые туманы плывут к облакам.[— = ]. ( Пов., невоскл., прост., распр.)

       туманы (какие?) седые

       плывут (куда? к чему?) к облакам

17. Состав слова.

Выпиши слово. Разбери его по составу. Запиши ещё 1-2 однокоренных слова.

Например: Поездка.

18.Правописание непроизносимых согласных.

Прочитай слово. Подбери к нему несколько однокоренных слов. Вы­дели корень. Проверь непроизносимую согласную. Обозначь орфограмму.

       Делай так:  звезда, звёздочка, звёздный.

                    честь - честный.

19. Гласные и согласные в приставках.

Выпиши слово. Выдели в нём приставку. Запиши ещё 2 слова с этой же приставкой.

       Например: полетели, побежали, потянули.

                    отнёс, отбежал, отлетел.

 

20.Правописание приставки со словом

Выпиши слово. Выдели приставку. Образуй от этого слова однокоренные слова с разными приставками.

       Например: заехал, уехал, переехал.

 

21. Правописание предлога со словом (орфограмма - пробел)

Из предложения, в котором допущена ошибка, выпиши слово вместе с предлогом. Докажи, что предлог со словом пишется отдельно. Обозначь орфограмму-пробел.

       Делай так: к берегу; к (какому?) берегу, к (крутому) берегу.

 

Запомни! Предлог - это отдельное слово. Не смешивай приставку с предлогом. У глаголов нет предлогов

       Например: Лодка отплыла от берега.

 

22. Разделительный твёрдый знак Ъ

Выпиши слово правильно. Запиши ещё 2 слова с это орфограммой. Выдели приставку. Подчеркни гласную

       Например: съезд, объявление, объём.

 

       Запомни! Разделительный твёрдый знак Ъ пишется только после при­ставок, которые оканчиваются на согласную, перед гласными

буквами е, ё, ю, я.

 

23.Мягкий    знак Ь на конце существительных после шипящих.

Выпиши слово правильно. Определи род. Запиши ещё 2 слова с этой орфограммой.

       Например: Луч (м.р.), шалаш, товарищ.

                    Ночь (ж.р.), мощь, тишь.

 

24.Соединительные гласные в сложных словах (о , е ).

Выпиши слово правильно. Выдели корни. Подчеркни гласную. Запиши ещё 1 слово на эту орфограмму.

       Делай так: водовоз, самолёт.

 

25. Не с глаголом (орфограмма-пробел).

Выпиши глагол с НЕ. Запиши ещё 2 слова на это правило. Подчеркни орфограмму.

                                глаг.              глаг.          глаг.

       Например: не пришёл, не выучил, не знал.

 

26. Однородные члены предложения.

Выпиши предложение. Обозначь однородные члены и слово, от ко­торого они зависят. Вспомни, что ты знаешь о знаках препинания и союзах между однородными членами. Выполни схему предложения.              

       Например: Сильный ветер сорвал листья с деревьев, разметал их по до­роге. [- =, =]. Сильный ветер сорвал листья с деревьев и разметал их по дороге. [- = и =].

 

27. Правописание безударных падежных окончаний имён существительных.

Выпиши существительное. Поставь его в начальную форму. Опре­дели тип склонения. Выдели окончание, проверь с помощью слов-помощников. Подбери и запиши свой пример.

       Делай так: на опушке ( на земле 1 скл.).

                    на полянке ( на земле 1 скл.).

                    у речки ( у земли 1 скл).

28.Правописание безударных падежных окончаний имён прилагательных.

Выпиши прилагательное вместе с существительным, к которому оно относится. Поставь к прилагательному вопрос от существительного. Определи род, число и падеж прилагательного по существительному. Выдели окончание прилагательного.

       Делай так: к лесу(какому?) дальнему –(м.р., ед. ч., Д.п.)

29.Предлог с местоимением (орфограмма –пробел).

Выпиши из предложения местоимение с предлогом. Запиши ещё 2 примера на эту орфограмму.

                          пр.      пр.        пр.

       Например: у нас, ко мне, с тобой.

Запомни! Предлоги с местоимением (как и с именами существительными) пишутся отдельно.

 

30.Мягкий знак Ь на конце глаголов 2-го лица единственного числа настоящего времени.

Выпиши глагол правильно. Запиши ещё 2 глагола на эту орфограмму.

       Например: пишешь, решаешь, читаешь (наст. вр.,2-го лица, ед. ч.)

Запомни! На конце глаголов 2-го лица единственного числа пишется мягкий знак Ь.

 

31.Правописание безударных личных окончаний глаголов.

Выпиши глагол правильно. Поставь ударение. Поставь глагол в начальную (неопределённую) форму. Посмотри на гласную перед –ТЬ. Определи спряжение глагола и гласную, которую следует писать в окончании глагола единственного и множественного числа.

       Делай так: пишет - писать, глаг.,1 спр.,(-е,-ут, ют)

ставит - ставить, глаг.,2 спр.,(-и, -ат,-ят)

32. Сложное предложение.

Выпиши правильно. Подчеркни грамматические основы. Нарисуй схему. Подчеркни запятую.

       Например: Дремлют рыбы под водой, почивает сом седой. [- =], [- =].

 

33.Предложение с прямой речью.

Запиши правильно. Составь схему. Подчеркни знаки препинания.

       Например: Князь печально отвечает: «Грусть-тоска меня съедает».

А: « П. »   или:

« А кем ты будешь на карнавале?» - спросил Мишка.

« П?» - а

 

34. Мягкий знак в неопределённой форме глагола. (-ться, -чь).

Выпиши слово правильно. Напиши вопрос. Обозначь орфограмму. Запиши ещё одно слово с этой орфограммой.

         Например: пытаться ( н.ф., что делать?)

                    беречь (что делать?)


 

Уэйд, Теренс, Гиллеспи, Дэвид: 9781405136396: Amazon.com: Книги

" Когда умер шотландский исследователь русского языка Уэйд (1930-2005), у него были далеко продвинутые планы, но не фактическая работа по обновлению грамматики, которая была очень успешной в выпусках 1992 и 2000 годов. Дэвид Гиллеспи (русский язык, Великобритания). . of Bath) взялся за эту задачу, решив не пытаться угадать, какие нововведения имел в виду Уэйд, а вместо этого объединил и добавил несколько новых разделов, стараясь сохранить то, что, по его мнению, уже является лучшей доступной русской грамматикой.Начиная с объяснения кириллицы и произношения, она прорабатывает все части речи и порядок слов ». (Справочно-исследовательская книга New s, февраль 2011 г.) Похвала за предыдущее издание:

"С добавлением полезного глоссария и большого раздела о словообразовании в русском существительном, Комплексная русская грамматика Теренса Уэйда, уже лучший справочник в своем роде, во втором издание, станет еще более полезным для изучающих русский язык."
- Барри П. Шерр , профессор русского языка, Дартмутский колледж

" Охват и свежие интересные примеры делают грамматику Уэйда привлекательной. . . Это, безусловно, будет стандартным справочным изданием в течение следующих пятидесяти лет ».
- The Slavonic Review

С задней стороны обложки

«Комплексная грамматика русского языка» Теренса Уэйда - это исчерпывающее руководство по использованию русского языка и стандартный справочник как для студентов, так и для профессионалов.В третьем издании эксперт по русскому языку Дэвид Гиллеспи обновляет и исправляет этот получивший высокую оценку том. Его исправления включают обновления многочисленных примеров и иллюстраций, а также информацию о некоторых новых тенденциях в использовании русского языка после распада Советского Союза в 1991 году. Гиллеспи также показывает возрастающее влияние глобализации на структуру русского языка. Как и прежде, доступ к тонкостям русской грамматики повышается за счет примеров использования, взятых как из современных источников, так и из классической литературы.

Это переработанное издание укрепляет позицию «Комплексной русской грамматики» как основного справочника по русскому языку в англоязычном мире.

Об авторе

Теренс Уэйд (1930–2005) был почетным профессором и научным сотрудником по изучению России в Университете Стратклайда в Глазго. Он написал 12 книг, в том числе предлогов современного русского языка (1985), Русский этимологический словарь (1996), Русский язык сегодня (совместно с Ларисой Рязановой-Кларк, 1999) и A Russian Grammar Workbook (Wiley -Blackwell, 1996).

Дэвид Гиллеспи - профессор русского языка в Университете Бата, Великобритания, где он преподает русский язык и культуру с 1985 года. Гиллеспи опубликовал 8 книг и более 50 статей по современной русской литературе и кино.

Учите русский бесплатно - уроки русского языка, тексты и многое другое

Наши ресурсы для бесплатного изучения русского:

Курсы русского языка: пошаговые уроки, от начального до среднего уровня.Мы собрали более 2 часов аудио, чтобы помочь вам быстро учиться. У вас есть три курса на выбор:

Словарь русских с видео: изучение наших видео увлекательно и эффективно. Вы знаете, что картинка стоит тысячи слов, поэтому будьте готовы смотреть и учиться. Вы можете изучить полезную лексику в любом из этих разделов:

  • Русский разговорник на видео.
  • Русская лексика на видео.
  • Базовый русский язык на видео: числа, цвета, месяцы, ...

Разговорник русского языка: идеальное место, чтобы выучить свои первые фразы на русском языке или подготовиться к поездке в Россию. Здесь вы можете прочитать и прослушать все основные фразы, которые вам следует знать.

Упражнения со словарем: правильно ли вы ответите на 10 вопросов? Каждый из этих тестов посвящен определенной теме (числа, цвета, животные, дни недели...). Если вам нужна помощь, вы можете посмотреть видео с используемой лексикой.

Фразы о любви: Любовь можно найти в Москве, Киеве, Екатеринбурге, ... Как сказать "Я люблю тебя" по-русски? Узнайте здесь это и многое другое. Это идеальный раздел для тех, кто хочет выразить свои чувства на русском языке.

Грамматика русского языка: мы создали эти полезные таблицы грамматики, чтобы помочь вам с местоимениями, существительными и прилагательными.Грамматика - важный элемент, который нужно учитывать при изучении иностранного языка.

Грамматические упражнения: короткие упражнения, которые помогут вам попрактиковаться в грамматике. Они разбиты на 3 уровня, от начального до продвинутого. Если вы хотите поддерживать свои языковые навыки в хорошей форме, не забывайте тренировать их здесь бесплатно.

Видеоклипы: когда вы слушаете русские песни, вы тренируете свое восприятие на слух и можете учиться, наслаждаясь.Мы включили в каждую песню оригинальный текст плюс английский перевод.

Русские мультики: Забудьте на время об уроках, грамматике и упражнениях. Это интересный способ выучить язык. Кроме того, в каждом выпуске вы найдете полную транскрипцию русских диалогов и таблицу с полезной лексикой.

Русский комикс: Учишь язык читать комиксы? Конечно! Картинки помогают понять историю, а кроме того, мы перевели тексты.Загляните в этот раздел, где вы найдете следующее:

  • Комиксы от Гарфилда: Самый известный кот говорит по-русски.
  • Комиксы от Дилберта: Забавные ситуации в офисе.

Диалоги со звуком: слушайте эти разговоры, записанные носителями русского языка и организованные на трех разных уровнях. Каждый диалог сопровождается звуком и переводом, поэтому вы не пропустите ни слова.

текстов со звуком: все со звуком, отсортированные по уровням, от начального до продвинутого. Хорошие навыки чтения необходимы при изучении иностранного языка, так что смело начинайте читать.

Русский форум: Не обязательно быть в Москве или Санкт-Петербурге, чтобы иметь русских друзей! Если у вас есть вопросы о языке, культуре и истории России, о Советском Союзе или о поездке в Украину ,... это твой форум.

Русский алфавит: слушайте здесь каждую букву кириллицы. Также мы поможем вам с примерами: для каждой буквы мы показываем вам 5 примеров русских слов, чтобы вы привыкли к ее звучанию. Как всегда, звук был записан носителями языка.

Русский для приемных родителей: Более 300 слов и предложений с записями. Идеальный раздел для родителей, у которых есть усыновленный ребенок из России, Украины, Беларуси или любой другой русскоязычной страны.

Подкасты на русском языке: улучшите свой русский язык, слушая эти подкасты. Это короткие статьи на самые разные темы, включая аудио на русском языке и словарные заметки.

Где говорят по-русски?


По всему миру. Это славянский язык, на котором говорят в России, Белоруссии, Украине, Казахстане, Киргизии и других бывших республиках СССР.Кроме того, это один из шести официальных языков Организации Объединенных Наций, а в таких странах, как США или Германия, проживают миллионы русскоязычных.

Почему вы хотите учить русский язык? Вы едете в Россию или Украину? Вы любите изучать языки? Какова бы ни была причина, учите русский язык вместе с нами. Мы разработали этот веб-сайт, чтобы помочь вам выучить этот замечательный и мощный язык. Если вам нравится наш сайт, поделитесь им.

Россия - Культурный этикет - e Diplomat

Народ

Россия имеет долгую историю тоталитаризма, привело к довольно фаталистическому подходу к жизни.Желание индивидуальная работа по личной инициативе пресекалась Царские и коммунистические государства. С наступлением перестройки (реструктуризация) советская / коммунистическая система ценностей была списаны, но темпы реформ были медленными, и многие находят очень сложно адаптироваться к западным ценностям индивидуализма и максимизация прибыли. Пожилые россияне, как правило, довольно пессимистичны и не очень верят в лучшую жизнь в будущее.Молодые городские россияне придерживаются более западного мировоззрения в жизни.

Встреча и приветствие

  • Первые приветствия могут показаться классными. Не ждите дружеские улыбки.
  • Рукопожатие всегда уместно (но не обязательно), когда приветствие или уход, независимо от отношений. Удалите ваш перчатки перед рукопожатием.Не пожимайте руки через порог (Русское народное поверье гласит, что это действие приведет к аргумент).

Язык тела

  • Русские люди очень демонстративные, публичные и физические. контакт обычен. Объятия, похлопывания, поцелуи в щеки и другие экспансивные жесты распространены среди друзей или знакомых и между представителями того же пола.
  • Русские стоят рядом, когда разговаривают.
  • Просунуть большой палец между указательным и средним пальцами или Знак «ОК» считается в России очень грубым жестом.

Корпоративная культура

  • Россияне ценят пунктуальность. Деловые встречи в целом начать вовремя.
  • При коммунизме у бюрократов не было стимулов к хорошо работать или даже нравиться клиентам; это значило что обычный ответ на любой вопрос был «Нет."Эта практика все еще встречается в российском обществе сегодня, но "Нет" обычно не последнее слово по проблеме. Нужно торговаться и быть настойчивым, чтобы получить то, что хочет.
  • Визитки широко распространены в России и всегда обмениваются на деловых встречах. Церемония вручения и получение визитных карточек важно. Не относитесь к этому легкомысленно.
  • Представители российской компании или государственного органа обычно сидят на одной стороне стола на встречах с гостями на с другой стороны.
  • Ваша компания должна быть представлена ​​специализированной командой эксперты. Презентации должны быть тщательно подготовлены, детализированы, фактический и краткий о «умении продавать».
  • Россияне обычно очень грамотно обсуждают технические вопросы, прямо и ясно, но, будучи новичками в капитализме, часто не до конца понимают западные методы ведения бизнеса и цели.Возможно, вам придется объяснить причины некоторых ваших требований.
  • россиянам сложно признавать ошибки, особенно публично. Им также трудно рискнуть кого-то обидеть делать запросы или утверждения.
  • Попытка вести бизнес в России по телефону - это вообще неэффективно. Российская телекоммуникационная система неадекватный, но быстро улучшается.Телекс широко используется.
  • Личные отношения играют решающую роль в русском языке бизнес.
  • Деловые переговоры в России продолжительны и могут проверить ваши терпение. Запланируйте долгое путешествие.
  • Ни одно соглашение не является окончательным до подписания контракта.

Рестораны и развлечения

  • Обедая в ресторане, приходите вовремя.
  • русских - прекрасные хозяева и любят развлекать гостей в своих дома. Они часто кладут на стол больше еды, чем можно съедено, чтобы указать, что еды много (есть ли или нет). Гости, оставляющие еду на тарелках, чтят хозяина. Значит, хорошо поели.
  • Если вас пригласили на ужин, не строите других планов на потом вечером.Ожидается, что после еда.
  • Приглашение на русскую дачу (загородный дом) - отличный честь.
  • Не отвергайте предложения еды или питья. Учитывая русский гостеприимство, это может быть сложно, но отказываться от таких предложений - считается грубым.
  • На официальных мероприятиях гости обычно не приступают к еде до хозяин начался.На таких функциях никто не должен уходить до тех пор, пока почетный гость ушел. Если вы почетный гость, не задерживаться слишком поздно.
  • Знайте свои пределы употребления алкоголя в России. Пить часто дело по принципу «все или ничего» - модерация не понимается.
  • Тосты, иногда длинные, а иногда и юмористические, обычные. Ведущий начинает, и гости отвечают.Не пей пока не будет предложен первый тост.
  • После тоста большинство россиян любят чокнуться все вместе. Не делайте этого, если вы что-то пьете безалкогольный.

Платье

  • «Серьезный» бизнесмен должен выглядеть формально и консервативный. Ношение очень светлых или ярких цветов может вызвать у вас казаться русским ленивым или ненадежным.
  • Мужчины должны носить костюмы и галстуки. Женщинам следует носить костюмы и платья или брючные костюмы.

Подарки

  • Подарок для малого бизнеса всегда уместен, но его ценность должен соответствовать рангу российского предпринимателя с с кем вы встречаетесь.
  • Как правило, не давайте предметы, которые сейчас легко можно получить в России.
  • Принесите подарок хозяйке в русский дом. А маленький подарок для русского ребенка всегда уместен (а оценил).

Полезные советы

  • Россияне очень гордятся своей культурой и любят возможность рассказать о своей музыке, искусстве, литературе и танец. Знания об искусстве, музыке и немного истории России оценен.
  • Учите русский язык! Изучение языка бесценно, и это лучший способ найти друзей для себя, своей компании и твоя страна. Если это просто невозможно, постарайтесь хотя бы выучить несколько фраз на русском. Это не обязательно должно быть идеально; Россияне высоко ценю любую попытку иностранцев говорить на их язык.
  • Никогда не называйте русских «товарищ.«
  • Не надейтесь нигде найти места, свободные от табачного дыма. Стандарт среди иностранных бизнесменов в России шутят, что русские Здания разделены на две секции: «курящие» и «непрерывно курящие».

Специально для женщин

  • К женщинам изначально относятся скептически, и, возможно, им придется проявить себя. Перед тем, как приехать, попросите уважаемого коллега отправит письмо, представляющее вас.Ваши визитки должно быть четко указано ваше звание и ученая степень. если ты немедленно установите свое положение и способности, вы сталкиваются с гораздо меньшим количеством проблем.
  • Будьте женственны. Разрешить мужчинам открывать двери, закуривать сигареты и т. Д. Даже если вы считаете такие обычаи устаревшими или глупыми, уважайте их. культурный фон ваших российских коллег.
  • Иностранные женщины-предприниматели могут использовать свою женственность в своих преимущество.Из боязни не показаться джентльменом многие русские бизнесмены могут позволить иностранным женщинам-предпринимателям избежать наказания за некоторые вещи (просьбы о встречах, услугах и т. д.), которые иностранные бизнесмены не допускаются.
  • Женщина может пригласить российского бизнесмена на обед и заплатить законопроект, хотя некоторые мужчины могут его истолковать как приглашение пофлиртовать.

Русские символы отображаются как мусор в PDF

Всем привет,

Мы настраиваем нашу смарт-форму для вывода заказа на поставку для страны Россия (на русском языке).Эта смарт-форма является настраиваемым объектом, а не стандартным, предоставляемым SAP. Для русского языка мы используем шрифт HELVCYR, который поддерживает русский язык. Устройство вывода, используемое в программе драйвера, - LOCL_R (LOCN).

Теперь, когда мы выдаем вывод для электронной почты, вывод PO будет отправлен в виде вложения PDF. Язык, на котором будет доступен этот PDF-файл, зависит от языка поставщика. Таким образом, если язык поставщика русский, PDF-файл будет на русском языке. Мы получаем это, как и ожидалось.

В выводе на покупку в заголовке будет название компании. В нашем случае название компании сохраняется на русском языке в таблице T001 и ADRC. Таким образом, всякий раз, когда создается заказ на поставку для российской балансовой единицы, независимо от языка поставщика (на котором будет оформлен заказ на покупку), текст заголовка будет на русском языке. Итак, проблема в том, что при выводе вывода, скажем, для поставщика (язык которого английский), только текст заголовка будет на русском языке. Мы написали подходящую логику (с правильным шрифтом) в smartform, чтобы поймать этот русский текст, хотя вывод будет на английском.И мы можем видеть заголовок Russain в форме PO в предварительном просмотре печати, хотя сообщение выдается на английском языке. Но проблема в том, что когда этот вывод конвертируется в PDF (мы используем FM CONVERT_OTF) для вложения электронной почты, вместо русского заголовка мы получаем ненужные символы в PDF.

Мы также пытались сохранить перевод SE63 для этой формы. Но когда мы используем перевод с исходным языком как RU и целевым языком как EN. Появляется ошибка «Объект не найден».Исходный язык smartform - EN, перевод на все языки включен.

Пожалуйста, помогите нам в решении этой проблемы.

Заранее спасибо.

С уважением,

Виджей

Устранение неполадок при проверке орфографии и грамматики на нескольких языках

Слова с ошибками не помечаются как написанные с ошибками

Убедитесь, что:

Убедитесь, что нужный язык включен

Чтобы правильно проверять орфографию и грамматику на другом языке, этот язык должен быть включен в Office.Если вам нужен язык, который не указан как язык редактирования в диалоговом окне «Установить языковые настройки Office », вам может потребоваться получить и установить языковой пакет, прежде чем вы сможете проверить орфографию. Дополнительные сведения о том, как включить языки в Office, см. В разделах Добавление языка или установка языковых предпочтений в Office и Пакет дополнительных языковых средств для Office.

Верх страницы

Убедитесь, что к тексту применен правильный язык.

Если средство проверки орфографии не проверяет слова, которые вы ввели на другом языке, или если оно помечает слова на другом языке, которые написаны правильно, как написанные с ошибками, слова могут быть идентифицированы с неправильным языком.

Чтобы вручную изменить язык определенных слов или фрагмента текста в Word, выполните следующие действия:

  1. На вкладке Review в группе Language щелкните Language > Set Proofing Language .

    (В Word 2007 щелкните Установить язык в группе Проверка .)

  2. В диалоговом окне Язык выберите нужный язык.

    Важно: Если нужный язык не отображается над двойной линией, необходимо включить язык, чтобы он был доступен для проверки орфографии.

  3. Начните печатать.

    Примечание: Для ввода символов, таких как умляут на немецком языке (ö), тильда на испанском языке (ñ), седилья на турецком языке (Ç), или даже символа, например галочки, на вставке Insert на вкладке в группе символов щелкните символ , а затем щелкните нужный символ.

  4. Чтобы вернуться к исходному языку или переключиться на другой язык, повторите шаги 1–3. На шаге 3 выберите следующий язык.

Верх страницы

Убедитесь, что используется правильный языковой словарь

Убедитесь, что для текста выбран правильный язык словаря - например, английский (США) вместо английского (Великобритания).

Чтобы изменить словарь на определенный язык в Word , выполните следующие действия:

  1. На вкладке Review в группе Language щелкните Language > Set Proofing Language .

    (В Word 2007 щелкните Установить язык в группе Проверка .)

  2. В диалоговом окне Язык выберите нужный язык.

    Важно: Если нужный язык не отображается над двойной линией, необходимо включить язык, чтобы он был доступен для проверки орфографии.

    Примечание. Если ваша версия Office не предоставляет средства проверки, такие как средство проверки орфографии, для языка, который вы хотите использовать, вам может потребоваться языковой пакет. Дополнительные сведения см. В разделе «Дополнительный языковой пакет» для Office.

Чтобы изменить словарь для выделенного текста, выполните следующие действия:

  1. Выберите текст, для которого вы хотите изменить язык словаря.

  2. На вкладке Review в группе Language щелкните Language > Set Proofing Language .

    (В Word 2007 щелкните Установить язык в группе Проверка .)

  3. В разделе Отметить выделенный текст как щелкните язык, на котором должен быть идентифицирован раздел текста. Если используемые вами языки не показаны над двойной линией, вы должны включить эти языки (включить языковые опции), чтобы они были доступны.

Верх страницы

Убедитесь, что установлен флажок Автоматически определять язык.

Чтобы установить флажок Определить язык автоматически в Word, выполните следующие действия:

  1. На вкладке Review в группе Language щелкните Language > Set Proofing Language .

    (В Word 2007 щелкните Установить язык в группе Проверка .)

  2. В диалоговом окне Язык установите флажок Определить язык автоматически .

  3. Проверьте языки, указанные над двойной линией в списке Отметить выделенный текст как список . Word может определять только те языки, которые указаны над двойной линией.Если нужные языки недоступны, необходимо включить язык редактирования, чтобы Word автоматически их обнаруживал.

Примечания:

  • Для автоматического определения языка требуется, чтобы предложение текста было написано на этом языке. В зависимости от длины ваших предложений вам может потребоваться ввести несколько предложений, прежде чем Word получит достаточно контекстной информации для автоматического определения языка и применения правильного словаря.

  • Слова, которые пишутся одинаково на нескольких языках, например, «центр» на английском (Великобритания) и французском (Франция), могут привести к тому, что флажок Определить язык автоматически может неправильно определять язык текста. Чтобы решить эту проблему, введите больше слов на желаемом языке или снимите флажок Определить язык автоматически .

Верх страницы

Убедитесь, что установлен флажок Автоматически переключать клавиатуру в соответствии с языком окружающего текста.

Автоматически переключать клавиатуру в соответствии с языком окружающего текста. Возможно, включен флажок , что приводит к опечаткам из-за изменения языка клавиатуры при вводе.Попробуйте ввести больше слов на желаемом языке или снимите флажок Автоматически переключать клавиатуру в соответствии с языком окружающего текста .

Чтобы выбрать Автоматически переключать клавиатуру в соответствии с языком окружающего текста, установите флажок (в Office 2010, Office 2013 и Office 2016):

  1. Открыть Word.

  2. Щелкните File > Options > Advanced .

  3. В разделе Параметры редактирования установите флажок Автоматически переключать клавиатуру в соответствии с языком окружающего текста .

    Примечание: Флажок «Автоматически переключать клавиатуру в соответствии с языком окружающего текста» отображается только после включения раскладки клавиатуры для языка. Если вы не видите этот параметр, включите раскладку клавиатуры для языка, который вы хотите использовать.

Верх страницы

Убедитесь, что флажок Не проверять орфографию и грамматику снят.

Если установлен флажок Не проверять орфографию и грамматику , орфография в ваших документах не проверяется.

Чтобы снять флажок Определить язык автоматически в Word, выполните следующие действия:

  1. На вкладке Review в группе Language щелкните Language > Set Proofing Language .

    (В Word 2007 щелкните Установить язык в группе Проверка .)

  2. В диалоговом окне Язык снимите флажок Не проверять орфографию или грамматику .

Подробнее о проверке орфографии и грамматики на разных языках.

Верх страницы

Убедитесь, что слово с ошибкой не было случайно добавлено в пользовательский словарь

Если слово с ошибкой было добавлено в пользовательский словарь, вам необходимо найти и удалить это слово.Для получения информации о том, как проверить пользовательский словарь на наличие орфографических ошибок, см. Использование пользовательских словарей для добавления слов в средство проверки орфографии. Для получения информации о том, как удалить слово из словаря, см. Добавление или изменение слов в словаре для проверки орфографии.

Верх страницы

Требуемый язык словаря отсутствует в диалоговом окне «Язык».

Наиболее частыми причинами того, что язык словаря не отображается в списке Язык словаря в диалоговом окне Язык , является то, что язык не был включен в качестве языка редактирования, или это язык, который не включен в необходимо установить установленную версию Office и языковой пакет для этого языка.Сведения о том, как включить язык редактирования, см. В разделе Изменение языка, который Office использует в меню и средствах проверки правописания.

Верх страницы

Все еще нужна помощь?

Свяжитесь с нами со своим вопросом или проблемой.

10.12 Настройка языка сообщений об ошибках

10.12 Настройка языка сообщений об ошибках

По умолчанию mysqld выдает сообщения об ошибках в Английский, но они могут отображаться на любом из нескольких других языки: чешский, датский, голландский, эстонский, французский, немецкий, греческий, Венгерский, итальянский, японский, корейский, норвежский, норвежский, Польский, португальский, румынский, русский, словацкий, испанский или Шведский.Это относится к сообщениям, которые сервер записывает в ошибку. log и отправляет клиентам.

Чтобы выбрать язык, на котором сервер пишет сообщения об ошибках, следуйте инструкциям в этом разделе. Для получения информации о изменение набора символов для сообщений об ошибках (а не язык), см. Раздел 10.6, «Набор символов сообщения об ошибке». Для общего информацию о настройке регистрации ошибок см. Раздел 5.4.2, «Журнал ошибок».

Сервер ищет файл сообщения об ошибке, используя следующие правила:

  • Он ищет файл в каталоге, состоящем из двух значения системных переменных, lc_messages_dir и lc_messages , с последним преобразовано в название языка.Предположим, вы запускаете сервер с помощью этой команды:

      mysqld --lc_messages_dir = / usr / share / mysql --lc_messages = fr_FR  

    В этом случае mysqld отображает локаль fr_FR на язык французский и ищет файл ошибки в / usr / share / mysql / french каталог.

    По умолчанию языковые файлы расположены в общий / mysql / ЯЗЫК в базовом каталоге MySQL.

  • Если файл сообщения не может быть найден в каталоге построенный, как только что описано, сервер игнорирует lc_messages значение и использование только lc_messages_dir ценность как место, в котором искать.

  • Если сервер не может найти настроенный файл сообщения, он записывает сообщение в журнал ошибок, чтобы указать на проблему и по умолчанию используются встроенные сообщения на английском языке.

Система lc_messages_dir переменная может быть установлена ​​только при запуске сервера и имеет только глобальный значение только для чтения во время выполнения. lc_messages можно установить на сервере при запуске и имеет глобальные значения и значения сеанса, которые можно изменить в время выполнения. Таким образом, язык сообщений об ошибках можно изменить, пока сервер запущен, и у каждого клиента может быть собственное сообщение об ошибке язык, установив его сеанс lc_messages значение до желаемого название локали.Например, если сервер использует fr_FR локаль для сообщений об ошибках, клиент может выполните этот оператор, чтобы получать сообщения об ошибках на английском языке:

  НАБОР lc_messages = 'en_US';  

API интернационализации Rails (I18n) - Руководства по Ruby on Rails

Платформа Ruby I18n предоставляет вам все необходимые средства для интернационализации / локализации вашего приложения Rails. Вы также можете использовать различные доступные драгоценные камни для добавления дополнительных функций или функций.См. Драгоценный камень rails-i18n для получения дополнительной информации.

1 Как работает I18n в Ruby on Rails

Интернационализация - сложная проблема. Естественные языки различаются по многим параметрам (например, правилами плюрализации), что трудно предоставить инструменты для решения всех проблем сразу. По этой причине Rails I18n API фокусируется на:

  • обеспечивает поддержку английского и подобных языков из коробки
  • упрощает настройку и расширение всего для других языков

В рамках этого решения каждая статическая строка в структуре Rails - e.г. Сообщения проверки Active Record, форматы времени и даты - переведено на международный уровень . Локализация приложения Rails означает определение переведенных значений для этих строк на желаемые языки.

Чтобы локализовать магазин и обновить содержимое в вашем приложении (например, перевести сообщения в блоге), см. Раздел «Перевод содержимого модели».

1.1 Общая архитектура библиотеки

Таким образом, гем Ruby I18n разделен на две части:

  • Публичный API фреймворка i18n - модуль Ruby с общедоступными методами, которые определяют, как работает библиотека
  • Бэкэнд по умолчанию (который намеренно назван Простой бэкэнд ), который реализует эти методы

Как пользователь, вы всегда должны иметь доступ только к общедоступным методам модуля I18n, но полезно знать о возможностях серверной части.

Можно заменить поставляемый Simple backend на более мощный, который будет хранить данные перевода в реляционной базе данных, словаре GetText или аналогичном. См. Раздел «Использование различных серверных ВМ» ниже.

1.2 Public I18n API

Наиболее важные методы I18n API:

  translate # Искать переводы текста
localize # Локализовать объекты даты и времени в локальные форматы
  
translate # Искать переводы текста localize # Локализовать объекты даты и времени в локальные форматы Копировать

У них есть псевдонимы #t и #l, поэтому вы можете использовать их так:

  I18n.t 'store.title'
I18n.l Time.now
  
I18n.t 'store.title' I18n.l Time.now Копировать

Существуют также считывающие и записывающие атрибуты для следующих атрибутов:

  load_path # Объявление ваших пользовательских файлов перевода
locale # Получить и установить текущую локаль
default_locale # Получить и установить языковой стандарт по умолчанию
available_locales # Разрешенные языковые стандарты, доступные для приложения
enforce_available_locales # Принудительное разрешение локали (true или false)
exception_handler # Использовать другой exception_handler
backend # Использовать другой backend
  
load_path # Объявите о ваших пользовательских файлах перевода locale # Получить и установить текущую локаль default_locale # Получить и установить языковой стандарт по умолчанию available_locales # Разрешенные языковые стандарты, доступные для приложения enforce_available_locales # Принудительное разрешение локали (true или false) exception_handler # Использовать другой exception_handler backend # Использовать другой backend Копировать

Итак, в следующих главах давайте интернационализируем простое приложение Rails с нуля!

2 Настройка приложения Rails для интернационализации

Чтобы начать работу с поддержкой I18n для приложения Rails, нужно выполнить несколько шагов.

2.1 Настройка модуля I18n

Следуя соглашению по философии конфигурации , Rails I18n предоставляет разумные строки перевода по умолчанию. Когда требуются разные строки перевода, их можно переопределить.

Rails автоматически добавляет все файлы .rb и .yml из каталога config / locales в путь загрузки переводов .

Локаль по умолчанию en.yml в этом каталоге содержит пример пары строк перевода:

  ru:
  привет: "Привет, мир"
  
ru: привет: "Привет, мир" Копировать

Это означает, что в локали : en ключ hello будет отображаться в строку Hello world .Таким образом, каждая строка внутри Rails интернационализирована, см., Например, сообщения проверки Active Model в файле activemodel / lib / active_model / locale / en.yml или форматы времени и даты в activesupport / lib / active_support / locale / en .yml файл. Вы можете использовать YAML или стандартные хэши Ruby для хранения переводов в бэкэнде по умолчанию (простом).

Библиотека I18n будет использовать English в качестве языкового стандарта по умолчанию , то есть, если другой языковой стандарт не установлен, для поиска переводов будет использоваться : en .

Библиотека i18n использует прагматический подход к ключам локали (после некоторого обсуждения), включая только часть locale («язык»), например : en , : pl , а не часть региона , например, : «en-US» или : «en-GB» , которые традиционно используются для разделения «языков» и «региональных настроек» или «диалектов». Многие международные приложения используют только элемент «язык» локали, например : cs , : th или : es (для чешского, тайского и испанского языков).Однако есть также региональные различия внутри разных языковых групп, которые могут быть важны. Например, в локали : «en-US» в качестве символа валюты будет доллар, а в : «en-GB» - £. Ничто не мешает вам разделить региональные и другие параметры таким образом: вам просто нужно указать полный языковой стандарт «Английский - Великобритания» в словаре : «en-GB» .

Путь загрузки переводов ( I18n.load_path ) - это массив путей к файлам, которые будут загружены автоматически.Настройка этого пути позволяет настроить структуру каталогов переводов и схему именования файлов.

Серверная часть выполняет отложенную загрузку этих переводов при первом поиске перевода. Этот бэкэнд можно заменить чем-то другим даже после того, как переводы уже были объявлены.

Вы можете изменить локаль по умолчанию, а также настроить пути загрузки переводов в файле config / application.rb следующим образом:

  config.i18n.load_path + = Dir [Rails.root.join ('my', 'locales', '*. {rb, yml}')]
config.i18n.default_locale =: de
  
config.i18n.load_path + = Dir [Rails.root.join ('my', 'locales', '*. {rb, yml}')] config.i18n.default_locale =: de Копировать

Перед поиском переводов необходимо указать путь загрузки. Чтобы изменить языковой стандарт по умолчанию из инициализатора вместо config / application.rb :

  # config / initializers / locale.rb

# Где библиотека I18n должна искать файлы перевода
I18n.load_path + = Dir [Rails.root.join ('lib', 'locale', '*. {rb, yml}')]

# Разрешенные языковые стандарты, доступные для приложения
I18n.available_locales = [: en,: pt]

# Установите языковой стандарт по умолчанию на что-нибудь кроме: en
I18n.default_locale =: pt
  
# config / initializers / locale.rb # Где библиотека I18n должна искать файлы перевода I18n.load_path + = Dir [Rails.root.join ('lib', 'locale', '*. {Rb, yml}')] # Разрешенные языковые стандарты, доступные для приложения I18n.available_locales = [: en,: pt] # Установите языковой стандарт по умолчанию на что-нибудь кроме: en I18n.default_locale =: pt Копировать

Обратите внимание, что добавление непосредственно к I18n.load_path вместо настроенного i18n приложения приведет к переопределению , а не переводов из внешних гемов.

2.2 Управление локалью в запросах

Локализованное приложение, вероятно, должно будет обеспечивать поддержку нескольких локалей. Для этого языковой стандарт должен быть установлен в начале каждого запроса, чтобы все строки переводились с использованием желаемого языкового стандарта в течение времени существования этого запроса.

Локаль по умолчанию используется для всех переводов, если не используется I18n.locale = или I18n.with_locale .

I18n.locale может просочиться в последующие запросы, обслуживаемые одним и тем же потоком / процессом, если он не установлен последовательно в каждом контроллере. Например, выполнение I18n.locale =: es в одном запросе POST будет иметь эффект для всех последующих запросов к контроллерам, которые не устанавливают языковой стандарт, а только в этом конкретном потоке / процессе. По этой причине вместо I18n.locale = , вы можете использовать I18n.with_locale , у которого нет этой проблемы с утечкой.

Локаль может быть установлена ​​в around_action в ApplicationController :

  around_action: switch_locale

def switch_locale (& действие)
  locale = params [: locale] || I18n.default_locale
  I18n.with_locale (язык и действие)
конец
  
around_action: switch_locale def switch_locale (& действие) locale = params [: locale] || I18n.default_locale I18n.with_locale (язык и действие) конец Копировать

Этот пример иллюстрирует это с помощью параметра запроса URL-адреса для установки языкового стандарта (например, http://example.com/books?locale=pt ). При таком подходе http: // localhost: 3000? Locale = pt отображает португальскую локализацию, а http: // localhost: 3000? Locale = de загружает немецкую локализацию.

Локаль можно установить с помощью одного из множества различных подходов.

2.2.1 Установка языкового стандарта на основе имени домена

Один из вариантов, который у вас есть, - это установить языковой стандарт на основе имени домена, на котором выполняется ваше приложение.Например, мы хотим, чтобы www.example.com загружал английский язык (или языковой стандарт по умолчанию), а www.example.es загружал испанский язык. Таким образом, для настройки локали используется доменное имя верхнего уровня . Это дает несколько преимуществ:

  • Локаль - это очевидная часть URL-адреса .
  • Люди интуитивно понимают, на каком языке будет отображаться контент.
  • Реализовать в Rails очень просто.
  • Поисковым системам кажется, что контент на разных языках живет в разных, взаимосвязанных доменах.

Вы можете реализовать это так в своем ApplicationController :

  around_action: switch_locale

def switch_locale (& действие)
  locale = extract_locale_from_tld || I18n.default_locale
  I18n.with_locale (язык и действие)
конец

# Получить локаль из домена верхнего уровня или вернуть + nil +, если такая локаль недоступна
# Вы должны поставить что-то вроде:
# 127.0.0.1 application.com
# 127.0.0.1 application.it
# 127.0.0.1 application.pl
# в вашем файле / etc / hosts, чтобы опробовать это локально
def extract_locale_from_tld
  parsed_locale = запрос.host.split ('.'). последний
  I18n.available_locales.map (&: to_s) .include? (Parsed_locale)? parsed_locale: ноль
конец
  
around_action: switch_locale def switch_locale (& действие) locale = extract_locale_from_tld || I18n.default_locale I18n.with_locale (язык и действие) конец # Получить локаль из домена верхнего уровня или вернуть + nil +, если такая локаль недоступна # Вы должны поставить что-то вроде: # 127.0.0.1 application.com # 127.0.0.1 application.it # 127.0.0.1 application.pl # в вашем файле / etc / hosts, чтобы опробовать это локально def extract_locale_from_tld parsed_locale = запрос.host.split ('.'). последний I18n.available_locales.map (&: to_s) .include? (Parsed_locale)? parsed_locale: ноль конец Копировать

Мы также можем установить локаль из поддомена очень похожим образом:

  # Получить код локали из поддомена запроса (например, http: //it.application.local: 3000)
# Вы должны поставить что-то вроде:
# 127.0.0.1 gr.application.local
# в вашем файле / etc / hosts, чтобы опробовать это локально
def extract_locale_from_subdomain
  parsed_locale = request.subdomains.first
  I18n.available_locales.map (&: to_s) .include? (parsed_locale)? parsed_locale: ноль
конец
  
# Получить код локали из поддомена запроса (например, http: //it.application.local: 3000) # Вы должны поставить что-то вроде: # 127.0.0.1 gr.application.local # в вашем файле / etc / hosts, чтобы опробовать это локально def extract_locale_from_subdomain parsed_locale = request.subdomains.first I18n.available_locales.map (&: to_s) .include? (Parsed_locale)? parsed_locale: ноль конец Копировать

Если ваше приложение включает меню переключения языковых стандартов, в нем будет что-то вроде этого:

  link_to ("Deutsch", "# {APP_CONFIG [: deutsch_website_url]} # {request.env ['PATH_INFO']} ")
  
link_to ("Deutsch", "# {APP_CONFIG [: deutsch_website_url]} # {request.env ['PATH_INFO']}") Копировать

при условии, что вы установили APP_CONFIG [: deutsch_website_url] на какое-то значение, например http://www.application.de .

Это решение имеет вышеупомянутые преимущества, однако вы не сможете или не захотите предоставлять разные локализации («языковые версии») для разных доменов. Наиболее очевидным решением было бы включить код локали в параметры URL (или путь запроса).

& action) around_action в первом примере. В этом случае нам нужны URL-адреса типа www.example.com/books?locale=ja или www.example.com/ja/books .

Этот подход имеет почти тот же набор преимуществ, что и установка языкового стандарта из имени домена: а именно то, что это RESTful и соответствует остальной части Всемирной паутины.Однако для его реализации требуется немного больше работы.

Получить локаль из params и установить его соответственно несложно; включая его в каждый URL-адрес и, таким образом, передает его через запросы . Чтобы включить явную опцию в каждый URL, например link_to (books_url (locale: I18n.locale)) , конечно, было бы утомительно и, вероятно, невозможно.

Rails содержит инфраструктуру для «централизации динамических решений об URL-адресах» в своем ApplicationController # default_url_options , который полезен именно в этом сценарии: он позволяет нам устанавливать «значения по умолчанию» для url_for и вспомогательные методы, зависящие от него (by реализация / переопределение default_url_options ).

Мы можем включить что-то подобное в наш ApplicationController , тогда:

  # приложение / контроллеры / application_controller.rb
def default_url_options
  {locale: I18n.locale}
конец
  
# приложение / контроллеры / application_controller.rb def default_url_options {locale: I18n.locale} конец Копировать

Каждый вспомогательный метод, зависящий от url_for (например, помощники для именованных маршрутов, таких как root_path или root_url , маршруты ресурсов, такие как books_path или books_url и т. Д.) теперь автоматически включает языковой стандарт в строку запроса , например: http: // localhost: 3001 /? locale = ja .

Возможно, вам это понравится. Однако это влияет на удобочитаемость URL-адресов, когда языковой стандарт «зависает» в конце каждого URL-адреса в вашем приложении. Более того, с архитектурной точки зрения языковой стандарт обычно иерархически выше других частей домена приложения: и URL-адреса должны отражать это.

Вероятно, вы хотите, чтобы URL-адреса выглядели так: http: // www.example.com/en/books (загружает английский язык) и http://www.example.com/nl/books (загружает голландский язык). Это достижимо с помощью стратегии «перекрытие default_url_options », описанной выше: вам просто нужно настроить свои маршруты с областью действия :

  # config / routes.rb
scope "/: locale" делать
  ресурсы: книги
конец
  
# config / routes.rb scope "/: locale" делать ресурсы: книги конец Копировать

Теперь, когда вы вызываете метод books_path , вы должны получить "/ en / books" (для локали по умолчанию).URL-адрес типа http: // localhost: 3001 / nl / books должен загружать голландский языковой стандарт, а затем, а следующие вызовы books_path должны возвращать "/ nl / books" (поскольку языковой стандарт изменился).

Поскольку возвращаемое значение default_url_options кэшируется для каждого запроса, URL-адреса в селекторе языкового стандарта не могут быть сгенерированы с вызовом помощников в цикле, который устанавливает соответствующий I18n.locale на каждой итерации. Вместо этого оставьте I18n.locale нетронутым и передайте явный параметр : locale помощнику или отредактируйте запрос .исходный_путь .

Если вы не хотите принудительно использовать языковой стандарт в своих маршрутах, вы можете использовать необязательную область пути (обозначенную круглыми скобками), например:

  # config / routes.rb
область "(: локаль)", локаль: / en | nl / do
  ресурсы: книги
конец
  
# config / routes.rb область "(: локаль)", локаль: / en | nl / do ресурсы: книги конец Копировать

При таком подходе вы не получите ошибку маршрутизации при доступе к вашим ресурсам, таким как http: // localhost: 3001 / books , без локали.Это полезно, когда вы хотите использовать языковой стандарт по умолчанию, если он не указан.

Конечно, вам нужно уделить особое внимание корневому URL-адресу (обычно «домашняя страница» или «панель управления») вашего приложения. Такой URL-адрес, как http: // localhost: 3001 / nl , не будет работать автоматически, потому что корень для: "dashboard # index" объявления в вашем routes.rb не учитывает языковой стандарт. (И это правильно: существует только один «корневой» URL.)

Вам, вероятно, потребуется сопоставить такие URL-адреса:

  # config / routes.rb
get '/: locale' => 'dashboard # index'
  
# config / routes.rb get '/: locale' => 'dashboard # index' Копировать

Обязательно позаботьтесь о порядке ваших маршрутов , чтобы это объявление маршрута не "съело" другие. (Вы можете добавить его непосредственно перед объявлением root: to .)

2.2.3 Установка языкового стандарта в пользовательских настройках

Приложение с аутентифицированными пользователями может позволить пользователям устанавливать предпочтения языкового стандарта через интерфейс приложения.При таком подходе выбранный пользователем языковой стандарт сохраняется в базе данных и используется для установки языкового стандарта для аутентифицированных запросов этого пользователя.

  around_action: switch_locale

def switch_locale (& действие)
  locale = current_user.try (: locale) || I18n.default_locale
  I18n.with_locale (язык и действие)
конец
  
around_action: switch_locale def switch_locale (& действие) locale = current_user.try (: locale) || I18n.default_locale I18n.with_locale (язык и действие) конец Копировать
2.2.4 Выбор подразумеваемого языкового стандарта

Если явный языковой стандарт не был установлен для запроса (например, с помощью одного из вышеуказанных методов), приложение должно попытаться определить желаемый языковой стандарт.

HTTP-заголовок Accept-Language указывает предпочтительный язык для ответа на запрос. Браузеры устанавливают это значение заголовка на основе настроек языковых предпочтений пользователя, что делает его хорошим выбором при выборе языкового стандарта.

Тривиальная реализация использования заголовка Accept-Language будет:

  def switch_locale (& действие)
  регистратор.[а-я] {2} /). первый
  конец
Копировать

 

На практике, чтобы сделать это надежно, необходим более надежный код. Библиотека http_accept_language Иэна Хеккера или промежуточное ПО Rack для локали Райана Томайко предоставляют решения этой проблемы.

2.2.4.2 Определение локали из IP-геолокации

IP-адрес клиента, делающего запрос, может использоваться для определения региона клиента и, следовательно, его локали. Для реализации этого подхода можно использовать такие сервисы, как GeoIP Lite Country или драгоценные камни, такие как геокодер.

В целом этот подход гораздо менее надежен, чем использование языкового заголовка, и не рекомендуется для большинства веб-приложений.

2.2.5 Сохранение языкового стандарта из сеанса или файлов cookie

У вас может возникнуть соблазн сохранить выбранный языковой стандарт в сеансе или в файле cookie . Однако не делает этого . Языковой стандарт должен быть прозрачным и быть частью URL-адреса. Таким образом, вы не нарушите основные предположения людей о самой сети: если вы отправите URL-адрес другу, они должны увидеть ту же страницу и контент, что и вы.Замечательным словом для этого будет то, что вы RESTful . Подробнее о подходе RESTful читайте в статьях Стефана Тилкова. Иногда из этого правила бывают исключения, которые обсуждаются ниже.

3 Интернационализация и локализация

OK! Теперь вы инициализировали поддержку I18n для своего приложения Ruby on Rails и сообщили ему, какой языковой стандарт использовать и как сохранять его между запросами.

Затем нам нужно интернационализировать наше приложение путем абстрагирования каждого элемента, зависящего от локали.Наконец, нам нужно локализовать , предоставив необходимые переводы для этих рефератов.

Рассмотрим следующий пример:

  # config / routes.rb
Rails.application.routes.draw делать
  root to: "home # index"
конец
  
# config / routes.rb Rails.application.routes.draw делать корень в: "дом # индекс" конец Копировать
  # приложение / контроллеры / application_controller.rb
класс ApplicationController  
# приложение / контроллеры / application_controller.rb класс ApplicationController # приложение / контроллеры / home_controller.rb класс HomeController
# приложение / контроллеры / home_controller.rb класс HomeController

Привет, мир

<% = flash [: notice]%>

Привет, мир

<% = flash [: notice]%>

Копировать

3.1 Абстрагирование локализованного кода

В нашем коде есть две строки на английском языке, которые пользователи будут отображать в нашем ответе («Hello Flash» и «Hello World»).Чтобы интернационализировать этот код, эти строки необходимо заменить вызовами помощника Rails #t с соответствующим ключом для каждой строки:

  # приложение / контроллеры / home_controller.rb
класс HomeController  
# приложение / контроллеры / home_controller.rb класс HomeController

<% = t: hello_world%>

<% = flash [: notice]%>

<% = t: hello_world%>

<% = flash [: notice]%>

Копировать

Теперь, когда это представление визуализировано, оно покажет сообщение об ошибке, которое сообщает вам, что переводы для ключей : hello_world и : hello_flash отсутствуют.

Rails добавляет к вашим представлениям вспомогательный метод t ( translate ), так что вам не нужно указывать I18n.т все время. Кроме того, этот помощник обнаружит отсутствующие переводы и преобразует полученное сообщение об ошибке в .

3.2 Предоставление переводов интернационализированных строк

Добавьте недостающие переводы в файлы словаря переводов:

  # config / locales / en.yml
ru:
  hello_world: Привет, мир!
  hello_flash: Привет, вспышка!
  
# config / locales / en.yml ru: hello_world: Привет, мир! hello_flash: Привет, вспышка! Копировать
  # config / locales / pirate.yml
пират:
  hello_world: Эй, мир
  hello_flash: Эй, Флэш
  
# config / locales / pirate.yml пират: hello_world: Эй, мир hello_flash: Эй, Флэш Копировать

Поскольку default_locale не изменился, переводы используют локаль : en , а в ответе отображаются строки на английском языке:

Если локаль установлена ​​через URL-адрес пиратской локали ( http: // localhost : 3000? Locale = pirate ), ответ отображает пиратские строки:

. Вам необходимо перезапустить сервер, когда вы добавляете новые файлы локали.

Вы можете использовать файлы YAML ( .yml ) или обычные файлы Ruby ( .rb ) для хранения ваших переводов в SimpleStore. YAML - предпочтительный вариант среди разработчиков Rails. Однако у него есть один большой недостаток. YAML очень чувствителен к пробелам и специальным символам, поэтому приложение может неправильно загрузить ваш словарь. Файлы Ruby приведут к сбою вашего приложения при первом запросе, поэтому вы легко сможете найти, что не так. (Если вы столкнетесь с какими-либо «странными проблемами» со словарями YAML, попробуйте поместить соответствующую часть вашего словаря в файл Ruby.)

Если ваши переводы хранятся в файлах YAML, определенные ключи должны быть экранированы. Их:

  • правда, вкл, да
  • ложь, выкл., Нет

Примеры:

  # config / locales / en.yml
ru:
  успех:
    'правда правда!'
    'on': 'Вкл!'
    'false': 'Ложь!'
  отказ:
    правда правда!'
    выкл: "Выкл!"
    false: «Ложь!»
  
# config / locales / en.yml ru: успех: 'правда правда!' 'on': 'Вкл!' 'false': 'Ложь!' отказ: правда правда!' выкл: "Выкл!" false: «Ложь!» Копировать
  I18n.t 'success.true' # => 'Верно!'
I18n.t 'success.on' # => 'Вкл!'
I18n.t 'success.false' # => 'Ложь!'
I18n.t 'failure.false' # => Перевод отсутствует
I18n.t 'failure.off' # => Перевод отсутствует
I18n.t 'failure.true' # => Перевод отсутствует
  
I18n.t 'success.true' # => 'Верно!' I18n.t 'success.on' # => 'Вкл!' I18n.t 'success.false' # => 'Ложь!' I18n.t 'failure.false' # => Перевод отсутствует I18n.t 'failure.off' # => Перевод отсутствует I18n.t 'failure.true' # => Перевод отсутствует Копировать
3.3 Передача переменных в переводы

Одним из ключевых факторов успешной интернационализации приложения является избегать неправильных предположений о правилах грамматики при абстрагировании локализованных код. Правила грамматики, которые кажутся основополагающими в одном регионе, могут не выполняться в других. другой.

Неправильная абстракция показана в следующем примере, где предположения сделано о заказе различных частей перевода.Обратите внимание, что Rails предоставляет помощник number_to_currency для обработки следующего случая.

  
<% = "# {t ('currency')} # {@ product.price}"%>
  
<% = "# {t ('currency')} # {@ product.price}"%> Копировать
  # config / locales / en.yml
ru:
  валюта: «$»
  
# config / locales / en.yml ru: валюта: «$» Копировать
  # config / locales / es.yml
es:
  валюта: «€»
  
# config / locales / es.yml es: валюта: «€» Копировать

Если цена товара 10, то правильный перевод для испанского - "10 €". вместо «10 евро», но абстракция не может этого дать.

Для создания правильной абстракции гем I18n поставляется с функцией, называемой переменной. интерполяция, которая позволяет использовать переменные в определениях перевода и передать значения этих переменных в метод перевода.

Правильная абстракция показана в следующем примере:

  
<% = t ('product_price', price: @ product.price)%>
  
<% = t ('product_price', price: @ product.price)%> Копировать
  # config / locales / en.yml
ru:
  product_price: "$% {цена}"
  
# config / locales / en.yml ru: product_price: "$% {цена}" Копировать
  # config / locales / es.yml
es:
  product_price: "% {price} €"
  
# config / locales / es.yml es: product_price: "% {price} €" Копировать

Все грамматические и пунктуационные решения принимаются в самом определении, поэтому абстракция может дать правильный перевод.

Область действия по умолчанию и Ключевые слова зарезервированы и не могут использоваться в качестве имена переменных. Если используется, возникает исключение I18n :: ReservedInterpolationKey . Если перевод ожидает переменную интерполяции, но она не была передана на #translate возникает исключение I18n :: MissingInterpolationArgument .

3.4 Добавление форматов даты / времени

OK! Теперь давайте добавим метку времени к представлению, чтобы мы могли также продемонстрировать функцию локализации даты и времени .Чтобы локализовать формат времени, вы передаете объект Time в I18n.l или (предпочтительно) используйте помощник Rails #l . Вы можете выбрать формат, передав параметр : формат - по умолчанию используется формат : по умолчанию .

  

<% = t: hello_world%>

<% = flash [: notice]%>

<% = l Time.now, формат:: short%>

<% = t: hello_world%>

<% = flash [: notice]%>

<% = l Time.now, формат:: short%>

Копировать

И в нашем файле пиратских переводов добавим формат времени (он уже есть в настройках Rails по умолчанию для английского языка):

  # config / locales / pirate.yml
пират:
  время:
    форматы:
      коротко: "arrrround% H'ish"
  
# config / locales / pirate.yml пират: время: форматы: коротко: "arrrround% H'ish" Копировать

Итак, это даст вам:

Прямо сейчас вам может потребоваться добавить еще несколько форматов даты / времени, чтобы серверная часть I18n работала должным образом (по крайней мере, для «пиратской» локали).Конечно, есть большая вероятность, что кто-то уже проделал всю работу по переводу значений Rails по умолчанию для вашей локали . См. Репозиторий rails-i18n на GitHub, где вы найдете архив файлов с различными языковыми стандартами. Когда вы помещаете такие файлы в каталог config / locales / , они автоматически будут готовы к использованию.

3.5 Правила перегиба для других локалей

Rails позволяет вам определять правила перегиба (например, правила для сингуляризации и множественного числа) для локалей, отличных от английского.В файле config / initializers / inflections.rb вы можете определить эти правила для нескольких языков. Инициализатор содержит пример по умолчанию для указания дополнительных правил для английского языка; следуйте этому формату для других языков по своему усмотрению.

3.6 Локализованные представления

Допустим, у вас есть BooksController в вашем приложении. Действие index отображает содержимое в шаблоне app / views / books / index.html.erb . Когда вы помещаете локализованный вариант этого шаблона: index.es.html.erb в том же каталоге, Rails будет отображать контент в этом шаблоне, если локаль установлена ​​на : es . Если для языкового стандарта задан языковой стандарт по умолчанию, будет использоваться общее представление index.html.erb . (Будущие версии Rails вполне могут принести эту автоматическую локализацию в активы в общедоступном и т. Д.)

Вы можете использовать эту функцию, например при работе с большим количеством статического контента, который было бы неуклюже помещать в словари YAML или Ruby.Однако имейте в виду, что любые изменения, которые вы хотите внести в шаблон позже, должны быть распространены на все они.

3.7 Организация файлов локалей

Если вы используете SimpleStore по умолчанию, поставляемый с библиотекой i18n, словари хранятся в текстовых файлах на диске. Ввод переводов для всех частей вашего приложения в одном файле на локаль может быть трудно управлять. Вы можете хранить эти файлы в понятной вам иерархии.

Например, ваш каталог config / locales может выглядеть так:

  | -по умолчанию
| --- es.yml
| --- en.yml
| -модели
| --- книга
| ----- es.yml
| ----- en.yml
| -просмотры
| --- значения по умолчанию
| ----- es.yml
| ----- en.yml
| --- книги
| ----- es.yml
| ----- en.yml
| --- пользователи
| ----- es.yml
| ----- en.yml
| --- навигация
| ----- es.yml
| ----- en.yml
  
| -по умолчанию | --- es.yml | --- en.yml | -модели | --- книга | ----- es.yml | ----- en.yml | -просмотры | --- значения по умолчанию | ----- es.yml | ----- en.yml | --- книги | ----- es.yml | ----- en.yml | --- пользователи | ----- es.yml | ----- en.yml | --- навигация | ----- es.yml | ----- en.yml Копировать

Таким образом, вы можете отделить имена моделей и атрибутов модели от текста внутри представлений, и все это от «значений по умолчанию» (например.г. форматы даты и времени). Другие хранилища для библиотеки i18n могут предоставить другие средства такого разделения.

Механизм загрузки локали по умолчанию в Rails не загружает файлы локали во вложенных словарях, как здесь. Итак, чтобы это сработало, мы должны явно указать Rails искать дальше:

  # config / application.rb
config.i18n.load_path + = Dir [Rails.root.join ('config', 'locales', '**', '*. {rb, yml}')]
  
# config / application.rb config.i18n.load_path + = Dir [Rails.root.join ('config', 'locales', '**', '*. {rb, yml}')] Копировать

4 Обзор функций API I18n

Теперь вы должны хорошо понимать, как пользоваться библиотекой i18n, и знать, как для интернационализации базового приложения Rails. В следующих главах мы рассмотрим его особенности более подробно.

В этих главах будут показаны примеры, использующие как метод I18n.translate , так и вспомогательный метод представления translate (с учетом дополнительной функции, обеспечиваемой вспомогательным методом представления).

Охвачены следующие функции:

  • поиск переводов
  • интерполяция данных в переводы
  • перевод во множественном числе
  • с использованием безопасных переводов HTML (только вспомогательный метод просмотра)
  • локализация дат, чисел, валюты и т. Д.
4.1 Поиск переводов
4.1.1 Базовый поиск, области и вложенные ключи

Переводы ищутся с помощью ключей, которые могут быть как символами, так и строками, поэтому эти вызовы эквивалентны:

  I18n.t: сообщение
I18n.t 'сообщение'
  
I18n.t: сообщение I18n.t 'сообщение' Копировать

Метод translate также принимает параметр : scope , который может содержать один или несколько дополнительных ключей, которые будут использоваться для указания «пространства имен» или области для ключа перевода:

  I18n.t: record_invalid, scope: [: activerecord,: errors,: messages]
  
I18n.t: record_invalid, scope: [: activerecord,: errors,: messages] Копировать

Это ищет сообщение : record_invalid в сообщениях об ошибках Active Record.

Кроме того, и ключ, и области могут быть указаны как ключи, разделенные точками, как в:

  I18n.translate "activerecord.errors.messages.record_invalid"
  
I18n.translate "activerecord.errors.messages.record_invalid" Копировать

Таким образом, следующие вызовы эквивалентны:

  I18n.t 'activerecord.errors.messages.record_invalid'
I18n.t 'errors.messages.record_invalid', область действия:: activerecord
I18n.t: record_invalid, область действия: 'activerecord.errors.messages'
I18n.t: record_invalid, scope: [: activerecord,: errors,: messages]
  
I18n.t 'activerecord.errors.messages.record_invalid' I18n.t 'errors.messages.record_invalid', область действия:: activerecord I18n.t: record_invalid, область действия: 'activerecord.errors.messages' I18n.t: record_invalid, scope: [: activerecord,: errors,: messages] Копировать
4.1.2 Значения по умолчанию

Если задана опция : default , ее значение будет возвращено, если перевод отсутствует:

  I18n.t: отсутствует, по умолчанию: «Не здесь»
# => 'Не здесь'
  
I18n.t: отсутствует, по умолчанию: «Не здесь» # => 'Не здесь' Копировать

Если значение : default является символом, оно будет использоваться в качестве ключа и переведено. По умолчанию можно указать несколько значений. Будет возвращен первый результат, в результате которого будет получено значение.

Например, следующий код сначала пытается перевести ключ : отсутствует , а затем ключ : также_missing. Поскольку оба результата не дают результата, будет возвращена строка «Не здесь»:

  I18n.t: отсутствует, по умолчанию: [: also_missing, 'Not here']
# => 'Не здесь'
  
I18n.t: отсутствует, по умолчанию: [: also_missing, 'Not here'] # => 'Не здесь' Копировать
4.1.3 Групповой поиск и поиск в пространстве имен

Для одновременного поиска нескольких переводов можно передать массив ключей:

  I18n.t [: нечетное,: четное], область действия: 'errors.messages'
# => ["должно быть нечетным", "должно быть четным"]
  
I18n.t [: нечетное,: четное], область действия: 'errors.messages' # => ["должно быть нечетным", "должно быть четным"] Копировать

Кроме того, ключ может преобразовываться в (потенциально вложенный) хэш сгруппированных переводов.Например, можно получить все сообщения об ошибках Active Record в виде хэша с:

  I18n.t 'activerecord.errors.messages'
# => {: include => "не входит в список",: exclusion => ...}
  
I18n.t 'activerecord.errors.messages' # => {: include => "не входит в список",: exclusion => ...} Копировать

Если вы хотите выполнить интерполяцию для массивного хэша переводов, вам необходимо передать deep_interpolation: true в качестве параметра.Когда у вас есть следующий словарь:

  ru:
  Добро пожаловать:
    title: "Добро пожаловать!"
    content: "Добро пожаловать в% {app_name}"
  
ru: Добро пожаловать: title: "Добро пожаловать!" content: "Добро пожаловать в% {app_name}" Копировать

, то вложенная интерполяция будет проигнорирована без настройки:

  I18n.t 'добро пожаловать', имя_приложения: 'книжный магазин'
# => {: title => "Добро пожаловать!",: content => "Добро пожаловать в% {app_name}"}

I18n.t 'добро пожаловать', deep_interpolation: true, app_name: 'book store'
# => {: title => "Добро пожаловать!",: content => "Добро пожаловать в книжный магазин"}
  
I18n.t 'добро пожаловать', app_name: 'книжный магазин' # => {: title => "Добро пожаловать!",: content => "Добро пожаловать в% {app_name}"} I18n.t 'добро пожаловать', deep_interpolation: true, app_name: 'book store' # => {: title => "Добро пожаловать!",: content => "Добро пожаловать в книжный магазин"} Копировать
4.1.4 "Ленивый" поиск

Rails реализует удобный способ поиска локали внутри представлений . Когда у вас есть следующий словарь:

  es:
  книги:
    показатель:
      название: "Título"
  
es: книги: показатель: название: "Título" Копировать

вы можете найти книги.index.title значение внутри шаблона app / views / books / index.html.erb (обратите внимание на точку):

  <% = t '.title'%>
  
<% = t '.title'%> Копировать

Частичное определение области автоматического перевода доступно только из вспомогательного метода представления translate .

"Ленивый" поиск также может использоваться в контроллерах:

  ru:
  книги:
    Создайте:
      успех: Книга создана!
  
ru: книги: Создайте: успех: Книга создана! Копировать

Это полезно для установки флэш-сообщений, например:

  класс BooksController  
класс BooksController 4.2 Множественное число

Во многих языках, включая английский, есть только две формы, единственное и множественное число, для заданная строка, например «1 сообщение» и «2 сообщения». Другие языки (арабский, японский, русский и многие другие) имеют другую грамматику, в которой есть дополнительные или меньшее количество форм множественного числа.Таким образом, I18n API обеспечивает гибкую возможность множественного числа.

Интерполяционная переменная : count играет особую роль в том, что она одновременно интерполируется в перевод и используется для выбора множественного числа из переводов в соответствии с правилами множественного числа, определенными в бэкэнд плюрализации. По умолчанию применяются только правила множественного числа для английского языка.

  I18n.backend.store_translations: en, inbox: {
  ноль: 'нет сообщений', # необязательно
  one: 'одно сообщение',
  другое: '% {count} сообщений'
}
I18n.перевод: входящие, количество: 2
# => '2 сообщения'

I18n.translate: входящие, кол-во: 1
# => 'одно сообщение'

I18n.translate: входящие, количество: 0
# => 'сообщений нет'
  
I18n.backend.store_translations: en, inbox: { ноль: 'нет сообщений', # необязательно one: 'одно сообщение', другое: '% {count} сообщений' } I18n.translate: входящие, кол-во: 2 # => '2 сообщения' I18n.translate: входящие, кол-во: 1 # => 'одно сообщение' I18n.translate: входящие, количество: 0 # => 'сообщений нет' Копировать

Алгоритм множественного числа в : en так же прост, как:

  lookup_key =: ноль, если count == 0 && entry.has_key? (: ноль)
lookup_key || = count == 1? : one:: другое
запись [lookup_key]
  
lookup_key =: ноль, если count == 0 && entry.has_key? (: ноль) lookup_key || = count == 1? : one:: другое запись [lookup_key] Копировать

Перевод обозначен как : один рассматривается как единственное число, а : другой используется как множественное число. Если счетчик равен нулю и присутствует запись : ноль , то она будет использоваться вместо : другие .

Если поиск ключа не возвращает хэш, подходящий для множественного числа, возникает исключение I18n :: InvalidPluralizationData .

4.2.1 Правила, зависящие от локали

Гем I18n предоставляет бэкэнд плюрализации, который можно использовать для включения правил, зависящих от локали. Включите это в простой бэкэнд, затем добавьте локализованные алгоритмы множественного числа в хранилище переводов, как i18n.plural.rule .

  I18n :: Backend :: Simple.include (I18n :: Backend :: Pluralization)
I18n.backend.store_translations: pt, i18n: {множественное число: {rule: lambda {| n | [0, 1] .include? (N)? : one:: other}}}
I18n.backend.store_translations: pt, apples: {one: 'one or none', other: 'more than one'}

I18n.t: яблоки, количество: 0, язык:: pt
# => 'один или ни один'
  
I18n :: Backend :: Simple.include (I18n :: Backend :: Pluralization) I18n.backend.store_translations: pt, i18n: {множественное число: {rule: lambda {| n | [0, 1] .include? (N)? : one:: other}}} I18n.backend.store_translations: pt, apples: {one: 'one or none', other: 'more than one'} I18n.t: яблоки, количество: 0, язык:: pt # => 'один или ни один' Копировать

В качестве альтернативы можно использовать отдельный gem rails-i18n для предоставления более полного набора правил множественного числа для конкретной локали.

4.3 Установка и передача языкового стандарта

Локаль может быть установлен псевдоглобально на I18n.locale (который использует Thread.current , например, Time.zone ) или может быть передан как опция на #translate и #localize .

Если языковой стандарт не передан, используется I18n.locale :

  I18n.locale =: de
I18n.t: foo
I18n.l Time.now
  
I18n.locale =: de I18n.t: foo I18n.l Time.now Копировать

Явная передача языкового стандарта:

  I18n.t: foo, язык:: de
I18n.l Time.now, язык:: de
  
I18n.t: foo, язык:: de I18n.l Time.now, язык:: de Копировать

Для I18n.locale по умолчанию используется I18n.default_locale , по умолчанию: en . Локаль по умолчанию может быть установлена ​​следующим образом:

  I18n.default_locale =: de
  
I18n.default_locale =: de Копировать
4.4 Использование безопасного перевода HTML

Ключи с суффиксом «_html» и ключи с именем «html» помечены как безопасные для HTML.Когда вы используете их в представлениях, HTML не экранируется.

  # config / locales / en.yml
ru:
  добро пожаловать:  добро пожаловать! 
  hello_html:  привет! 
  заглавие:
    html:  название! 
  
# config / locales / en.yml ru: добро пожаловать: добро пожаловать! hello_html: привет! заглавие: html: название! Копировать
  
<% = t ('добро пожаловать')%>
<% = raw t ('добро пожаловать')%>
<% = t ('hello_html')%>
<% = t ('title.html ')%>
<% = t ('добро пожаловать')%>
<% = raw t ('добро пожаловать')%>
<% = t ('hello_html')%>
<% = t ('title.html')%>
Копировать

Однако интерполяция сбегает по мере необходимости. Например, дано:

  ru:
  welcome_html: " Добро пожаловать,% {username}! "
  
ru: welcome_html: " Добро пожаловать,% {username}! " Копировать

, вы можете безопасно передать имя пользователя, установленное пользователем:

  <% # Это безопасно, при необходимости можно будет экранировать.%>
<% = t ('welcome_html', имя пользователя: @ current_user.username)%>
  
<% # Это безопасно, при необходимости можно будет экранировать. %> <% = t ('welcome_html', имя пользователя: @ current_user.username)%> Копировать

Безопасные строки, с другой стороны, интерполируются дословно.

Автоматическое преобразование в HTML-безопасный текст перевода доступно только из вспомогательного метода представления translate .

4.5 Переводы для моделей Active Record

Вы можете использовать методы Model.model_name.human и Model.human_attribute_name (attribute) для прозрачного поиска переводов для вашей модели и имен атрибутов.

Например, когда вы добавляете следующие переводы:

  ru:
  activerecord:
    модели:
      пользователь: Клиент
    атрибуты:
      Пользователь:
        логин: "Handle"
      # будет переводить атрибут пользователя "login" как "Handle"
  
ru: activerecord: модели: пользователь: Клиент атрибуты: Пользователь: логин: "Handle" # будет переводить атрибут пользователя "login" как "Handle" Копировать

Затем Пользователь.model_name.human вернет «Customer», а User.human_attribute_name («login») вернет «Handle».

Вы также можете установить множественное число для названий моделей, добавив следующее:

  ru:
  activerecord:
    модели:
      Пользователь:
        один: Клиент
        другое: Клиенты
  
ru: activerecord: модели: Пользователь: один: Клиент другое: Клиенты Копировать

Затем User.model_name.human (count: 2) вернет «Клиенты».При количестве : 1 или без параметров вернет «Клиент».

В случае, если вам необходимо получить доступ к вложенным атрибутам в данной модели, вы должны вложить их в модель / атрибут на уровне модели вашего файла перевода:

  ru:
  activerecord:
    атрибуты:
      пользователь / роль:
        admin: "Админ"
        участник: "Соавтор"
  
ru: activerecord: атрибуты: пользователь / роль: admin: "Админ" участник: "Соавтор" Копировать

Затем Пользователь.human_attribute_name ("role.admin") вернет "Admin".

Если вы используете класс, который включает ActiveModel и не наследуется от ActiveRecord :: Base , замените activerecord на activemodel в указанных выше ключевых путях.

4.5.1 Области сообщений об ошибках

Сообщения об ошибках проверки Active Record также можно легко перевести. Active Record предоставляет вам несколько пространств имен, в которых вы можете размещать переводы сообщений, чтобы предоставлять различные сообщения и перевод для определенных моделей, атрибутов и / или проверок.Он также прозрачно учитывает наследование одной таблицы.

Это дает вам довольно мощные средства гибкой настройки ваших сообщений в соответствии с потребностями вашего приложения.

Рассмотрим модель User с проверкой атрибута name следующим образом:

  класс Пользователь  
класс User Ключ сообщения об ошибке в этом случае - : пусто .Active Record будет искать этот ключ в пространствах имен:

  activerecord.errors.models. [Имя_модели]. Атрибуты. [Имя_атрибута]
activerecord.errors.models. [имя_модели]
activerecord.errors.messages
ошибки.атрибуты. [имя_атрибута]
ошибки. сообщения
  
activerecord.errors.models. [имя_модели]. атрибуты. [имя_атрибута] activerecord.errors.models. [имя_модели] activerecord.errors.messages ошибки.атрибуты. [имя_атрибута] ошибки. сообщения Копировать

Таким образом, в нашем примере он попробует следующие ключи в указанном порядке и вернет первый результат:

  activerecord.errors.models.user.attributes.name.blank
activerecord.errors.models.user.blank
activerecord.errors.messages.blank
errors.attributes.name.blank
errors.messages.blank
  
activerecord.errors.models.user.attributes.name.blank activerecord.errors.models.user.blank activerecord.errors.messages.blank errors.attributes.name.blank errors.messages.blank Копировать

Когда ваши модели дополнительно используют наследование, сообщения ищутся в цепочке наследования.

Например, у вас может быть модель администратора, унаследованная от пользователя:

  класс Администратор <Пользователь
  проверяет: имя, присутствие: истина
конец
  
class Admin <Пользователь проверяет: имя, присутствие: истина конец Копировать

Тогда Active Record будет искать сообщения в следующем порядке:

  activerecord.errors.models.admin.attributes.name.blank
activerecord.errors.models.admin.blank
activerecord.errors.models.user.attributes.name.blank
activerecord.errors.models.user.blank
activerecord.errors.messages.blank
errors.attributes.name.blank
errors.messages.blank
  
activerecord.errors.models.admin.attributes.name.blank activerecord.errors.models.admin.blank activerecord.errors.models.user.attributes.name.blank activerecord.errors.models.user.blank activerecord.errors.messages.blank ошибки.attributes.name.blank errors.messages.blank Копировать

Таким образом, вы можете предоставить специальные переводы для различных сообщений об ошибках в разных точках цепочки наследования вашей модели, а также в атрибутах, моделях или областях по умолчанию.

4.5.2 Интерполяция сообщений об ошибках

Переведенное имя модели, переведенное имя атрибута и значение всегда доступны для интерполяции как модель , атрибут и значение соответственно.

Так, например, вместо сообщения об ошибке по умолчанию «не может быть пустым» вы можете использовать имя атрибута следующим образом: «Пожалуйста, введите свой% {attribute}» .

  • счетчик , если таковой имеется, может использоваться для множественного числа, если присутствует:
проверка с опцией сообщение интерполяция
подтверждение : подтверждение атрибут
приемка : принято
наличие : пусто
отсутствие : присутствует
длина : внутри,: в : too_short счет
длина : внутри,: в : слишком_длинный счет
длина : это : неправильная_длина счет
длина : минимум : too_short счет
длина : максимум : слишком_длинный счет
уникальность : принято
формат : недопустимый
включение : включение
исключение : исключение
связанный : недопустимый
необязательная ассоциация : требуется
номер : not_a_number
номер : больше_ чем : больше_ чем счет
номер : больше_тан_ или_equal_to : больше_тан_ или_equal_to счет
номер : equal_to : equal_to счет
номер : меньше_тхан : меньше_тхан счет
номер : less_than_or_equal_to : less_than_or_equal_to счет
номер : other_than : other_than счет
номер : only_integer : not_an_integer
номер : нечет : нечет
номер : даже : даже
4.6 Переводы тем сообщений электронной почты Action Mailer

Если вы не передадите тему методу mail , Action Mailer попытается найти это в ваших переводах. Выполняемый поиск будет использовать шаблон . .subject для создания ключа.

  # user_mailer.rb
класс UserMailer  
# user_mailer.rb класс UserMailer ru: user_mailer: Добро пожаловать: тема: "Добро пожаловать в Rails Guides!" ru: user_mailer: Добро пожаловать: тема: "Добро пожаловать в Rails Guides!" Копировать

Для отправки параметров на интерполяцию используйте метод default_i18n_subject в почтовой программе.

  # user_mailer.rb
класс UserMailer  
# user_mailer.rb класс UserMailer ru: user_mailer: Добро пожаловать: subject: "% {user}, добро пожаловать в Rails Guides!" ru: user_mailer: Добро пожаловать: subject: "% {user}, добро пожаловать в Rails Guides!" Копировать
4.7 Обзор других встроенных методов, обеспечивающих поддержку I18n

Rails использует фиксированные строки и другие локализации, такие как строки формата и другую информацию о формате в нескольких помощниках.Вот краткий обзор.

4.7.1 Вспомогательные методы просмотра действий
  • distance_of_time_in_words переводит результат и интерполирует его результат, а также интерполирует количество секунд, минут, часов и так далее. Смотрите переводы datetime.distance_in_words.

  • datetime_select и select_month используют переведенные названия месяцев для заполнения результирующего тега select. Смотрите переводы date.month_names. datetime_select также ищет вариант заказа по дате.порядок (если вы явно не передадите эту опцию). Все помощники по выбору даты переводят приглашение, используя переводы из области datetime.prompts, если применимо.

  • number_to_currency , number_with_precision , number_to_percentage , number_with_delimiter и number_to_human_size Помощники используют настройки формата чисел, расположенные в области числа.

4.7.2 Методы активной модели
  • название_модели.human и human_attribute_name используют переводы для имен моделей и имен атрибутов, если они доступны в области activerecord.models. Они также поддерживают переводы имен унаследованных классов (например, для использования с STI), как описано выше в разделе «Области сообщений об ошибках».

  • ActiveModel :: Errors # generate_message (который используется при проверках активной модели, но также может использоваться вручную) использует model_name.human и human_attribute_name (см. Выше).Он также переводит сообщение об ошибке и поддерживает переводы для имен унаследованных классов, как описано выше в разделе «Области сообщений об ошибках».

  • ActiveModel :: Errors # full_messages добавляет имя атрибута к сообщению об ошибке, используя разделитель, который будет искать из errors.format (по умолчанию "% {attribute}% {message}" ).

4.7.3 Активные методы поддержки
  • Array # to_sentence использует настройки формата, указанные в поддержке.область видимости массива.

5 Как хранить свои собственные переводы

Базовая программа Simple, поставляемая с Active Support, позволяет сохранять переводы как в простом формате Ruby, так и в формате YAML.

Например, Ruby Hash с переводами может выглядеть так:

  {
  pt: {
    foo: {
      бар: "баз"
    }
  }
}
  
{ pt: { foo: { бар: "баз" } } } Копировать

Эквивалентный файл YAML будет выглядеть так:

  пт:
  foo:
    бар: баз
  
pt: foo: бар: баз Копировать

Как видите, в обоих случаях ключом верхнего уровня является локаль.: foo - это ключ пространства имен, а : bar - это ключ для перевода «baz».

Вот "реальный" пример из файла YAML переводов Active Support en.yml :

  ru:
  Дата:
    форматы:
      по умолчанию: "% Y-% m-% d"
      коротко: "% b% d"
      long: "% B% d,% Y"
  
ru: Дата: форматы: по умолчанию: "% Y-% m-% d" коротко: "% b% d" long: "% B% d,% Y" Копировать

Таким образом, все следующие эквивалентные поиски вернут : короткий формат даты "% b% d" :

  I18n.t 'date.formats.short'
I18n.t 'format.short', объем:: дата
I18n.t: короткий, объем: 'date.formats'
I18n.t: краткий, объем: [: дата,: форматы]
  
I18n.t 'date.formats.short' I18n.t 'format.short', объем:: дата I18n.t: короткий, объем: 'date.formats' I18n.t: краткий, объем: [: дата,: форматы] Копировать

Обычно мы рекомендуем использовать YAML в качестве формата для хранения переводов. Однако есть случаи, когда вы хотите сохранить лямбда-выражения Ruby как часть данных вашей локали, например для специальных форматов даты.

6 Индивидуальная настройка I18n

6.1 Использование различных бэкэндов

По нескольким причинам бэкэнд Simple, поставляемый с Active Support, выполняет только «самую простую вещь, которая могла бы работать» для Ruby on Rails ... что означает, что он гарантированно работает только для английского языка и, как побочный эффект, языки, которые очень похожи на английский. Кроме того, простой бэкэнд способен только читать переводы, но не может динамически сохранять их в любом формате.

Однако это не означает, что вы придерживаетесь этих ограничений.Гем Ruby I18n позволяет очень легко заменить простую внутреннюю реализацию на что-то еще, что лучше подходит для ваших нужд, путем передачи внутреннего экземпляра в установщик I18n.backend = .

Например, вы можете заменить простой бэкэнд бэкэндом цепочки, чтобы связать несколько бэкэндов вместе. Это полезно, если вы хотите использовать стандартные переводы с простой серверной частью, но хранить пользовательские переводы приложений в базе данных или других серверных модулях.

С бэкэндом Chain вы можете использовать бэкэнд Active Record и вернуться к простому бэкэнду (по умолчанию):

  I18n.backend = I18n :: Backend :: Chain.new (I18n :: Backend :: ActiveRecord.new, I18n.backend)
  
I18n.backend = I18n :: Backend :: Chain.new (I18n :: Backend :: ActiveRecord.new, I18n.backend) Копировать
6.2 Использование различных обработчиков исключений

API I18n определяет следующие исключения, которые будут генерироваться серверными модулями при возникновении соответствующих непредвиденных условий:

  MissingTranslationData # для запрошенного ключа перевод не найден
InvalidLocale # установлен языковой стандарт I18n.языковой стандарт недействителен (например, ноль)
InvalidPluralizationData # параметр подсчета был передан, но данные перевода не подходят для множественного числа
MissingInterpolationArgument # перевод ожидает аргумент интерполяции, который не был передан
ReservedInterpolationKey # перевод содержит зарезервированное имя переменной интерполяции (т.е. одно из: scope, по умолчанию)
UnknownFileType # бэкэнд не знает, как обрабатывать тип файла, который был добавлен в I18n.load_path
  
MissingTranslationData # для запрошенного ключа перевод не найден InvalidLocale # установлен языковой стандарт I18n.языковой стандарт недействителен (например, ноль) InvalidPluralizationData # параметр подсчета был передан, но данные перевода не подходят для множественного числа MissingInterpolationArgument # перевод ожидает аргумент интерполяции, который не был передан ReservedInterpolationKey # перевод содержит зарезервированное имя переменной интерполяции (т.е. одно из: scope, по умолчанию) UnknownFileType # бэкэнд не знает, как обрабатывать тип файла, который был добавлен в I18n.load_path Копировать

API I18n перехватит все эти исключения, когда они будут выброшены в бэкэнд, и передаст их методу default_exception_handler.Этот метод повторно вызовет все исключения, кроме исключений MissingTranslationData . Когда исключение MissingTranslationData было обнаружено, оно вернет строку сообщения об ошибке исключения, содержащую отсутствующий ключ / область.

Причина этого в том, что во время разработки вы обычно хотите, чтобы ваши представления по-прежнему отображались, даже если перевод отсутствует.

Однако в других контекстах вы можете изменить это поведение. Например. обработка исключений по умолчанию не позволяет легко обнаруживать отсутствующие переводы во время автоматических тестов.Для этого можно указать другой обработчик исключений. Указанный обработчик исключений должен быть методом в модуле I18n или классом с методом вызова :

  модуль I18n
  класс JustRaiseExceptionHandler  
модуль I18n класс JustRaiseExceptionHandler Это повторно вызовет только исключение MissingTranslationData , передав все остальные входные данные обработчику исключений по умолчанию.

Однако, если вы используете I18n :: Backend :: Pluralization , этот обработчик также вызовет I18n :: MissingTranslationData: translation missing: en.i18n.plural.rule исключение, которое обычно следует игнорировать, чтобы вернуться к правилу множественного числа по умолчанию для английского языка. Чтобы избежать этого, вы можете использовать дополнительную проверку ключа перевода:

  if exception.is_a? (MissingTranslation) && key.to_s! = 'I18n.plural.rule'
  поднять исключение. to_exception
еще
  супер
конец
  
if exception.is_a? (MissingTranslation) && key.to_s! = 'i18n.plural.rule' поднять исключение. to_exception еще супер конец Копировать

Другим примером, в котором поведение по умолчанию менее желательно, является Rails TranslationHelper, который предоставляет метод #t (а также #translate ).Когда в этом контексте возникает исключение MissingTranslationData , помощник помещает сообщение в диапазон с классом CSS translation_missing .

Для этого помощник заставляет I18n # translate вызывать исключения независимо от того, какой обработчик исключений определен, путем установки параметра : raise :

  I18n.t: foo, raise: true # всегда повторно вызывает исключения из бэкэнда
  
I18n.t: foo, raise: true # всегда повторно вызывает исключения из бэкэнда Копировать

7 Перевод содержимого модели

API I18n, описанный в этом руководстве, в первую очередь предназначен для перевода строк интерфейса.Если вы хотите перевести контент модели (например, сообщения в блоге), вам понадобится другое решение, чтобы помочь с этим.

В этом могут помочь несколько драгоценных камней:

  • Глобализация: сохраняйте переводы в отдельных таблицах перевода, по одному для каждой переведенной модели
  • .
  • Мобильность: обеспечивает поддержку хранения переводов во многих форматах, включая таблицы перевода, столбцы json (PostgreSQL) и т. Д.
  • Traco: переводимые столбцы, хранящиеся в самой таблице модели

8 Заключение

На этом этапе у вас должен быть хороший обзор того, как работает поддержка I18n в Ruby on Rails, и вы готовы начать перевод вашего проекта.

9 Участие в Rails I18n

Поддержка I18n в Ruby on Rails была представлена ​​в выпуске 2.2 и все еще развивается. Этот проект следует хорошей традиции разработки Ruby on Rails, заключающейся в том, что решения сначала развиваются в гемах и реальных приложениях, а уже потом отбираются лучшие в своем классе из наиболее широко полезных функций для включения в ядро.

Таким образом, мы призываем всех экспериментировать с новыми идеями и функциями в гемах или других библиотеках и делать их доступными для сообщества.(Не забудьте объявить о своей работе в нашем списке рассылки!)

Если вы обнаружите, что ваш собственный языковой стандарт (язык) отсутствует в нашем репозитории данных переводов для Ruby on Rails, пожалуйста, создайте вилку репозитория, добавьте свои данные и отправить запрос на перенос.

10 ресурсов

11 Авторов

Обратная связь

Вам предлагается помочь улучшить качество этого руководства.

Пожалуйста, внесите свой вклад, если вы заметите какие-либо опечатки или фактические ошибки.Для начала вы можете прочитать наш раздел документации.

Вы также можете найти неполный контент или устаревшие вещи. Пожалуйста, добавьте недостающую документацию для main. Обязательно проверьте Edge Guides сначала проверят если проблемы уже исправлены или нет в основной ветке. Ознакомьтесь с Руководством по Ruby on Rails Guides. для стиля и условностей.

Если по какой-либо причине вы заметили, что нужно исправить, но не можете исправить это самостоятельно, пожалуйста, открыть вопрос.

И, наконец, что не менее важно, любое обсуждение Ruby on Rails. документация приветствуется в списке рассылки rubyonrails-docs.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *