рдореИрдВ рдПрдХ рдореБрдХреНрдд рдЕрдм рддрдХ рдореБрджреНрд░рд╛ рдкрд░рд┐рд╡рд░реНрддрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рджрд┐рд▓рдЪрд╕реНрдк рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╡рд┐рддреНрдд рд╢реНрд░реЗрдгреА рдореЗрдВ рдореЗрд░рд╛ рджреВрд╕рд░рд╛ рдЖрд╡реЗрджрдиред рдкрд╣рд▓реА, рдордиреА рдЖрдИрдХреНрдпреВ, рдПрдХ рдЫреЛрдЯреА рд╕реА рдХрдВрдкрдиреА рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░реВрд╕реА рдРрдк рд╕реНрдЯреЛрд░ рдореЗрдВ 1 рд╕реНрдерд╛рди рдкрд░ рдЬрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдореИрдВ рдПрдХ рдФрд░ рдмреНрд▓реЙрдЧ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рджреЗрд╡ рдХрд╣рд╛рдиреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реВрдВрдЧрд╛, рдЕрдЧрд░ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрджрд░ рднрд╛рд╖рд╛ рдХреЗ рддрддреНрдХрд╛рд▓ рдкрд░рд┐рд╡рд░реНрддрди рдЬреИрд╕реА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рджрд░рдЕрд╕рд▓, рд╕рдорд╕реНрдпрд╛ред
рд╢рд╛рдпрдж, рдХрдИ рдХреЛ рдмрд╣реБрднрд╛рд╖реА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рд╛ред рдореИрдВ рди рдХреЗрд╡рд▓ iOS рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдмрд▓реНрдХрд┐ рдЖрдо рддреМрд░ рдкрд░ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЗрдирдореЗрдВ рд╕реЗ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо "рднрд╛рд╖рд╛ / Idioma" рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЙрд╕ рднрд╛рд╖рд╛ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рдирдИ рднрд╛рд╖рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреБрдЫ рдореЗрдВ, рд╕рдм рдХреБрдЫ рддреБрд░рдВрдд рд╣реЛрддрд╛ рд╣реИред IOS рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрддреЗ рд╕рдордп рджреВрд╕рд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
Apple рдХреНрдпрд╛ рдСрдлрд░ рдХрд░рддрд╛ рд╣реИ
рдХрдбрд╝рд╛рдИ рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, Apple рдпрд╣ рд╡рдХрд╛рд▓рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрд╕ рд▓реЛрдХреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдлреЛрди рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╣реА рдЙрдЪрд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реВрд╕реА рд╡реНрдпрдХреНрддрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд░реВрд╕реА рднрд╛рд╖рд╛ рдбрд╛рд▓ рджреЗрдЧрд╛, рдФрд░ рд╡рд╣ рд░реВрд╕реА рдореЗрдВ рдЖрд╡реЗрджрди рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдЕрдиреБрд╡рд╛рдж рдЖрджрд░реНрд╢ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ - рд╢рдмреНрдж рдмрдЯрди рдкрд░ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ undying Prompt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд╡рд╛рджрд┐рдд рджрд┐рдЦрддреЗ рд╣реИрдВ, рдпрд╛ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдирд╛рд░рд╛рдЬ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╛рда рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЕрдВрдЧреНрд░реЗрдЬреА рднрд╛рд╖рд╛ рдбрд╛рд▓рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЖрдирдВрдж рд▓реЗрддрд╛ рд╣реВрдВред рдХреБрдЫ рдЗрд╕ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдХреЗрд▓ рдХреЛ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред NSBundle рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рд╣реИ - рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреНрд░рдкрддреНрд░ ru.lproj рдХреА рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдлреЛрди рд▓реЛрдХреЗрд▓ ru_RU рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ, рдХреЙрд▓ рдХрд░реЗрдВ
[ [ NSBundle mainBundle ] loadNibNamed : @ "xib_name" ... ]
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ ru.lproj рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛, рдФрд░ рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд░реВрдЯ рдореЗрдВ рд╕реНрдерд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред
рдЕрдЧрд▓рд╛ред рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди NSLocalizedString рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдпрд╣ рдирд┐рд░реНрдорд╛рдг - NSLocalizedString (@ "рд╕реНрдЯреНрд░рд┐рдВрдЧ", @ "рдЯрд┐рдкреНрдкрдгреА") рдХреЛ рдлреИрд▓рддрд╛ рд╣реИ
[ [ NSBundle mainBundle ] localizedStringForKey : @ "string" value : @ "" table : il ]
рдпрджрд┐ рдЖрдк рд▓реЛрдХрд▓ рдХреЛ рдЧреИрд░-рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдХрд░реЗрдВ? рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд▓реЛрдХрдкреНрд░рд┐рдп рддрд░реАрдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рднрд╛рд╖рд╛ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдорд╛рд░рдирд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХрд▓ рдХреЛ рдмрджрд▓ рджреЗрдВ рдЬрд┐рд╕рд╕реЗ NSBundle рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░реЗрдЧрд╛ред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
main.m:
[ [ NSUserDefaults standardUserDefaults ] setObject : [ NSArray arrayWithObjects : @ "ru_RU" , nil ]
forKey : @ "AppleLanguages" ] ;
[ [ NSUserDefaults standardUserDefaults ] рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВ ] ;
@autoreleasepool {
рд╡рд╛рдкрд╕реА UIApplicationMain ( argc, argv, nil , NSStringFromClass ( [ YourApp class ] ) ) ;
}
рдЗрд╕рдХреЗ рдмрд╛рдж, MA рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд╣реИ рдЬреЛ MyApp рдХреЗ рд▓рд┐рдП рдЦрдбрд╝рд╛ рд╣реИ, рдХреЛрдИ рдЫрд┐рдкрд╛ рд╣реБрдЖ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИ :)рд╕рдорд╛рдзрд╛рди рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдореЗрдВ рд╕реЗ рдПрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрдд рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдкрд░рд┐рд╡рд░реНрддрди рдШреЛрд╖рд┐рдд рдПрдХ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИ - рдЙрддреНрдкрд╛рджрди рд▓рд╛рдЧрддред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рддреЗрдЬреА рд╕реЗ рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рдирдореЗрдВ рдЖрд╡реЗрджрди рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛ рд╕реНрдерд╛рди рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Booking.com рд╕реЗ рдЙрддреНрдХреГрд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ (рд╡рд┐рдЬреНрдЮрд╛рдкрди рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ - рдЖрд╡реЗрджрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ)ред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ рдкрд░, рдореИрдВрдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рддреИрдпрд╛рд░реА рдХрд╛ рдХрд╛рдо
рдкрд╣рд▓рд╛ рдЪрд░рдгред
рдореИрдВ рдЖрд╡реЗрджрди рдХреЛ рд╕реНрдерд╛рдиреАрдп рдмрдирд╛рдиреЗ рдХреА рддреИрдпрд╛рд░рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛; рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ
рд▓реЗрдЦ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдореИрдВ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджреВрдВрдЧрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдЬреАрд╡рди рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдпрджрд┐ рдмрд╣реБрдд рд╣реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ, рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдХреЗрд▓ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ
NSLocalizedString ( @ "рд╕реНрдЯреНрд░рд┐рдВрдЧ" , @ "рдЯрд┐рдкреНрдкрдгреА" )
рд╕рд░рд▓ рдХреЗ рдмрдЬрд╛рдп
@ "рд╕реНрдЯреНрд░рд┐рдВрдЧ"
рдЬреЛ рд▓реЛрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП NSLocalizedString рдореЗрдВ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ genstrings рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдирдИ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ ред
рджреВрд╕рд░рд╛ рдЪрд░рдгред
рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рдХрд┐ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдореИрдХреНрд░реЛ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдореЗрдирдмрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ "рдХрд╕реНрдЯрдо" рдмрдВрдбрд▓ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рд╕рдВрд╕рд╛рдзрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рд╕рд┐рдВрдЧрд▓рдЯрди MALocalizationSystem рдмрдирд╛рдПрдВ (рд╣рдо objc Google рдФрд░ рдЕрдм рдлреИрд╢рдиреЗрдмрд▓ рдбрд┐рд╕реНрдкреИрдЪ_рдСрдирд╕;) рдкрд░ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рддрд░реАрдХреЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
+ ( MALocalizationSystem * ) рд╕рд╛рдЭрд╛рдХрд░рдг рдкреНрд░рдгрд╛рд▓реА;
- ( NSString * ) localizedStringForKey : ( NSString * ) рдХреБрдВрдЬреА рдорд╛рди : ( NSString * ) рдЯрд┐рдкреНрдкрдгреА;
- ( рд╢реВрдиреНрдп ) setLanguage : ( NSString * ) рднрд╛рд╖рд╛;
- ( NSString * ) getLanguage;
рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЪрдкреНрдкрд▓ рдХреА рддрд░рд╣ рд╕рд░рд▓ рд╣реИ:
рд╕реНрдерд┐рд░ MALocalizationSystem * _saredLocalizationSystem = nil ; // рд╕рд┐рдВрдЧрд▓рдЯрди рдЙрджрд╛рд╣рд░рдг
рд╕реНрдерд┐рд░ NSBundle * рдмрдВрдбрд▓ = nil ; // рд╡рд░реНрддрдорд╛рди рдмрдВрдбрд▓ред рдЗрдирд┐рдЯ рд╡рд┐рдзрд┐ рдореЗрдВ рдореВрд▓реНрдп [NSBundle mainBundle] рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ
рд╕реНрдерд┐рд░ NSString * _currentLanguage = nil ; // рд╡рд░реНрддрдорд╛рди рднрд╛рд╖рд╛
- ( NSString * ) localizedStringForKey : ( NSString * ) рдХреБрдВрдЬреА рдорд╛рди : ( NSString * ) рдЯрд┐рдкреНрдкрдгреА
{
рд╡рд╛рдкрд╕реА [ рдмрдВрдбрд▓ localizedStringForKey : рдореБрдЦреНрдп рдореВрд▓реНрдп : рдЯрд┐рдкреНрдкрдгреА рддрд╛рд▓рд┐рдХрд╛ : nil ] ;
}
- ( рд╢реВрдиреНрдп ) setLanguage : ( NSString * ) рд▓реИрдВрдЧ
{
рдЕрдЧрд░ ( _currentLanguage && [ lang isEqualToString : _currentLanguage )
{
рд╡рд╛рдкрд╕реА;
}
NSString * рдкрд╛рде = [ [ NSBundle mainBundle ] pathForResource : lang ofType : @ "lproj" ] ;
_currentLanguage = lang;
рдЕрдЧрд░ ( рдкрде == рдиреАрд▓ )
{
[рд╕реНрд╡рдпрдВ рдХреЛ рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ ] ; // рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рдорд┐рд▓реАрдВ - _currentLanguage рдХреЛ nil рдФрд░ рдмрдВрдбрд▓ рдХреЛ [NSBundle mainBundle] рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ
}
рдЕрдиреНрдпрдерд╛
{
bundle = [ NSBundle bundleWithPath : path ] ;
}
// рдпрд╣рд╛рдБ, рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЖрдк рд▓реЛрдХрд▓ рдХреЗ рд╕рдлрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред
[ [ NSNotificationCenter defaultCenter ] postNotificationName : kLocalizationChangedNotification рдСрдмреНрдЬреЗрдХреНрдЯ : nil ] ;
}
- ( NSString * ) getLanguage
{
рдЕрдЧрд░ ( _currentLanguage )
{
NSArray * рднрд╛рд╖рд╛рдПрдБ = [ [ NSUserDefaults standardUserDefaults ] objectForKey : @ "AppleLanguages" ] ;
_currentLanguage = [ рднрд╛рд╖рд╛рдПрдБ objectAtIndex : 0 ] ;
NSString * рдкрде = [ [ NSBundle mainBundle ] pathForResource : _currentLanguage ofType : @ "lproj" ] ;
рдЕрдЧрд░ ( рдкрде == рдиреАрд▓ )
{
[ рд╕реНрд╡рдпрдВ рдХреЛ рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ ] ;
_currentLanguage = @ "en" ; // рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рднрд╛рд╖рд╛ред
}
}
рд╡рд╛рдкрд╕реА _currentLanguage;
}
рдФрд░ рд╣рдо рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдореИрдХреНрд░реЛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
#define MALocalizedString (рдХреБрдВрдЬреА, рдЯрд┐рдкреНрдкрдгреА)
[ [ MALocalizationSystem ShareLocalizationSystem ] localizedStringForKey : ( рдореБрдЦреНрдп ) рдореВрд▓реНрдп : ( рдЯрд┐рдкреНрдкрдгреА ) ]
# рдЕрд▓реНрдкрд╛рдЗрди рдореБрдЦрд░рд┐рдХрд░рдг
[ [ MALocalizationSystem рд╕рд╛рдЭрд╛рдХрд░рдг рдкреНрд░рдгрд╛рд▓реА ] setLanguage : ( рднрд╛рд╖рд╛ ) ]
#define MALocalizationGetLanguage
[ [ MALocalizationSystem рд╕рд╛рдЭрд╛рдХрд░рдг рдкреНрд░рдгрд╛рд▓реА ] getLanguage ]
рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рд╣рдо MALocalizationSetLanguage ("eo") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднрд╛рд╖рд╛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрд╣рд╛рдВ рднреА рд╣рдордиреЗ NSLocalizedString рдХреЗ рдмрдЬрд╛рдп MALocalizedString рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣рд╛рдВ рд╕реНрдерд╛рдкрд┐рдд рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛: рдЪрд┐рддреНрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдФрд░ рдЕрдиреНрдп рдлрд╛рдЗрд▓реЗрдВ? рдФрд░ рдпрд╣рд╛рдБ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ ...
рддреАрд╕рд░рд╛ рдЪрд░рдгред
Apple рдиреЗ рдлрд┐рд░ рднреА рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрд╛ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП, рдпрджрд┐ рдЖрдк xml рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдореБрджреНрд░рд╛ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
NSString * pathToFile = [ [ NSBundle mainBundle ] pathForResource : @ "рдореБрджреНрд░рд╛ рдирд╛рдо"
рдЯрд╛рдЗрдк : @ "xml" ] ;
cachedCurrencyNames = [ NSMutableArray arrayWithContentsOfFile : pathToFile ] ;
рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ:
NSString * pathToFile = [ [ NSBundle mainBundle ] pathForResource : @ "рдореБрджреНрд░рд╛ рдирд╛рдо"
рдЯрд╛рдЗрдк : @ "xml"
рдЕрдкреНрд░рддреНрдпрдХреНрд╖ : nil
forLocalization : @ "рдЖрд░рдпреВ" ] ;
cachedCurrencyCodes = [ NSMutableArray arrayWithContentsOfFile : pathToFile ] ;
рдЗрд╕реЗ рдкрдХрдбрд╝реЛ? :)
рд╣рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ:
- NSLocalizedString рдХреЗ рдмрдЬрд╛рдп рдХреЛрдб рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рдореИрдХреНрд░реЛ MALocalizedString рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ :)
- рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рдВрд╕рд╛рдзрди рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: MALocalizationGetLanguage
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рднрд╛рд╖рд╛ рдмрджрд▓рддреЗ рд╕рдордп, MALocalizationSetLanguage рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ
рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ kLocalizationChangedNotification рдШрдЯрдирд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ / рдЯреИрдЧ / рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдм рд╕рд╛рдорд╛рди рдПрдХ рдпрд╛ рдХрдИ рддрд░реАрдХреЛрдВ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рдЬрд╛рдЧрдиреЗ рдХреЗ рджреМрд░рд╛рди (рдЙрдиреНрд╣реЗрдВ) рдХреЙрд▓ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ kLocalizationChangedNotification рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдкрд░ред
рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдпред
рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ iOS рдлреЙрд▓реЛрдЕрд░реНрд╕ рдореБрдЭреЗ рдЧрд▓рдд рд╕рдордЭреЗрдВ - рдореБрдЭреЗ рдРрдкреНрдкрд▓ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИред рдЙрд╕реА рд╕рдордп, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЬреЛ рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рдпреЛрдЬрдирд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рднрд╛рд╖рд╛ рдХреЛ рдЪреБрдирдиреЗ рдореЗрдВ рдЪреВрдХ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕реЗ "рдмрд┐рдирд╛ рд╢реЛрд░ рдФрд░ рдзреВрд▓ рдХреЗ" рдмрджрд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕реА)ред
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдВрджрд░реНрднред
рдпрд╣рд╛рдБ рд╕реЗ рдХреЛрдб рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдереЛрдбрд╝рд╛ рдкреБрдирдГ рд▓рд┐рдЦрд╛ / рдкреВрд░рдХ / рд╕реБрдзрд╛рд░рд╛ рдЧрдпрд╛ рдерд╛ред