{"id":29161,"date":"2021-06-08T10:21:00","date_gmt":"2021-06-08T07:21:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29161"},"modified":"2021-10-18T03:36:17","modified_gmt":"2021-10-18T00:36:17","slug":"tworz-wielojezyczna-strone-internetowa-w-php-za-pomoca-laravel-framework","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/tworz-wielojezyczna-strone-internetowa-w-php-za-pomoca-laravel-framework\/","title":{"rendered":"Tw\u00f3rz wieloj\u0119zyczn\u0105 stron\u0119 internetow\u0105 w PHP za pomoc\u0105 Laravel Framework"},"content":{"rendered":"<p>Chcesz stworzy\u0107 wieloj\u0119zyczn\u0105 stron\u0119 internetow\u0105 w PHP? Wieloj\u0119zyczna strona internetowa pomaga zwi\u0119kszy\u0107 liczb\u0119 odbiorc\u00f3w z kilku region\u00f3w. W tym artykule dowiemy si\u0119, jak zbudowa\u0107 wieloj\u0119zyczn\u0105 stron\u0119 internetow\u0105 w PHP przy u\u017cyciu Laravel Framework.<\/p>\n<p>Laravel ma wbudowan\u0105 funkcj\u0119 Lokalizacji. Lokalizacja j\u0119zykowa to proces t\u0142umaczenia tre\u015bci na r\u00f3\u017cne j\u0119zyki. Korzystaj\u0105c z tej wbudowanej funkcji Laravela, mo\u017cemy doda\u0107 obs\u0142ug\u0119 wielu j\u0119zyk\u00f3w do strony Laravel.<\/p>\n<p>W Laravelu mo\u017cesz \u0142atwo pobra\u0107 ci\u0105gi w r\u00f3\u017cnych j\u0119zykach, dzi\u0119ki czemu mo\u017cesz wspiera\u0107 wiele j\u0119zyk\u00f3w w aplikacji.<\/p>\n<p>Istniej\u0105 dwa sposoby definiowania ci\u0105g\u00f3w t\u0142umaczeniowych w Laravelu \u2013 u\u017cywaj\u0105c skr\u00f3t\u00f3w klawiszowych i u\u017cywaj\u0105c ci\u0105g\u00f3w t\u0142umaczeniowych jako kluczy. Przyjrzyjmy si\u0119 temu po kolei.<\/p>\n<h3>T\u0142umaczenie Laravel za pomoc\u0105 skr\u00f3t\u00f3w<\/h3>\n<p>Aby rozpocz\u0105\u0107, powiniene\u015b najpierw zna\u0107 struktury katalog\u00f3w u\u017cywane do t\u0142umaczenia w Laravel.<\/p>\n<p>Za\u0142\u00f3\u017cmy, \u017ce musisz doda\u0107 obs\u0142ug\u0119 j\u0119zyka \u201eniemieckiego&quot;. Stw\u00f3rz wi\u0119c katalog 'de&#8217; w folderze 'resources\/lang&#8217;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20301-6081da9876a80.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20301-6081da9876a80.png\" alt=\"Tw\u00f3rz wieloj\u0119zyczn\u0105 stron\u0119 internetow\u0105 w PHP za pomoc\u0105 Laravel Framework\" ><\/a><\/p>\n<p>Zaleca si\u0119 u\u017cywanie nazwy folderu zgodnie z terytorium zgodnie z warto\u015bciami ISO. List\u0119 kod\u00f3w j\u0119zyk\u00f3w znajdziesz <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ee825488(v=cs.20).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tutaj<\/a>.<\/p>\n<p>Utw\u00f3rz plik <code>messages.php<\/code>w folderze \u201ede&#8221;. Ten plik zawiera tablic\u0119 \u0142a\u0144cuch\u00f3w z kluczami. Poni\u017cej znajduje si\u0119 przyk\u0142ad, w kt\u00f3rym u\u017cywamy niemieckiego t\u0142umaczenia angielskiego s\u0142owa \u201ewelcome&#8221;.<\/p>\n<pre><code>&lt;?php\n\u00a0\nreturn [\n\u00a0\u00a0\u00a0\u00a0'welcome' =&gt; 'Herzlich willkommen',\n];<\/code><\/pre>\n<p>Tutaj \u201ewelcome&#8221; to klucz zdefiniowany przez u\u017cytkownika. Ten klucz b\u0119dzie u\u017cywany do pobierania ci\u0105g\u00f3w t\u0142umaczeniowych w j\u0119zyku niemieckim. Mo\u017cesz doda\u0107 dowoln\u0105 liczb\u0119 kluczy w tym pliku. Podczas dodawania kluczy nale\u017cy u\u017cywa\u0107 unikalnych kluczy w tablicy. Zduplikowane klucze spowoduj\u0105 b\u0142\u0119dne t\u0142umaczenie.<\/p>\n<p>Powy\u017cszy proces jest \u0142atwy, je\u015bli Twoja witryna nie zawiera du\u017co tre\u015bci. Ale je\u015bli Twoja witryna jest do\u015b\u0107 bogata w tre\u015b\u0107, utrzymanie unikalnych kluczy b\u0119dzie trudne w obs\u0142udze. W takich przypadkach przejd\u017a do drugiej opcji przekazywania ci\u0105g\u00f3w t\u0142umaczeniowych jako kluczy.<\/p>\n<h3>U\u017cywanie ci\u0105g\u00f3w t\u0142umaczeniowych jako kluczy<\/h3>\n<p>W tym podej\u015bciu nie musisz przekazywa\u0107 unikalnego klucza. To, co musisz zrobi\u0107, to utworzy\u0107 plik <code>de.json<\/code>w katalogu \u201eresources\/lang&#8221;. Nast\u0119pnie w tym pliku JSON przeka\u017c ci\u0105g t\u0142umaczenia jako klucze.<\/p>\n<p>Na przyk\u0142ad chcesz otrzyma\u0107 niemieckie t\u0142umaczenie angielskiego zdania \u201eJak si\u0119 masz?&#8221; nast\u0119pnie w <code>de.json<\/code>pliku dodaj poni\u017csz\u0105 par\u0119.<\/p>\n<pre><code>{\n\u00a0\u00a0\u00a0\u00a0\"How are you?\": \"Wie geht es dir?\"\n}<\/code><\/pre>\n<p>Klucz ci\u0105gu t\u0142umaczenia powinien by\u0107 dok\u0142adnie tym, dla kt\u00f3rego chcesz t\u0142umaczy\u0107. B\u0119dzie to o wiele prostsze, poniewa\u017c w kodzie musisz bezpo\u015brednio przekaza\u0107 ci\u0105g t\u0142umaczenia.<\/p>\n<h3>Ustaw j\u0119zyk dla strony Laravel<\/h3>\n<p>Kiedy instalujemy Laravela, domy\u015blnym ustawieniem j\u0119zykowym jest 'en&#8217;. Aby zmieni\u0107 domy\u015blny j\u0119zyk, otw\u00f3rz <code>config\/app.php<\/code>plik. Znajd\u017a klucz \u201elocale&#8221; i ustaw kod j\u0119zyka. W naszym przypadku b\u0119dzie to <code>'locale' =&gt; 'de'<\/code>.<\/p>\n<p>Alternatywnie mo\u017cna ustawi\u0107 \u015brodowisko wykonawcze j\u0119zyka za pomoc\u0105 <code>setLocale<\/code>metody <code>App<\/code>fasady. W poni\u017cszym kodzie ustawiam j\u0119zyk w konstruktorze.<\/p>\n<pre><code>use App;\npublic function __construct() {\n\u00a0\u00a0\u00a0\u00a0App::setLocale('de');\n}<\/code><\/pre>\n<h3>Pobierz ci\u0105gi t\u0142umaczenia i zast\u0105p je<\/h3>\n<p>Aby pobra\u0107 przet\u0142umaczony tekst z plik\u00f3w j\u0119zykowych, Laravel udost\u0119pni\u0142 metod\u0119 pomocnicz\u0105 '\u201e. W poni\u017cszym kodzie pobieram ci\u0105gi t\u0142umacze\u0144 zar\u00f3wno z pliku, jak <code>messages.php<\/code>i <code>de.json<\/code>z pliku ostrza.<\/p>\n<pre><code>{{ __('messages.welcome') }} \/\/Output, Herzlich willkommen\n\u00a0\n{{ __('How are you?') }} \/\/Output, Wie geht es dir?<\/code><\/pre>\n<p>W kontrolerze mo\u017cesz uzyska\u0107 ci\u0105g t\u0142umaczenia za pomoc\u0105 <code>echo<\/code>funkcji.<\/p>\n<pre><code>echo __('messages.welcome');\necho __('How are you?');<\/code><\/pre>\n<h3>Symbole zast\u0119pcze w ci\u0105gach t\u0142umaczeniowych<\/h3>\n<p>Laravel bada r\u00f3wnie\u017c funkcje t\u0142umaczenia, w kt\u00f3rych mo\u017cna przekazywa\u0107 symbole zast\u0119pcze w ci\u0105gach t\u0142umaczeniowych.<\/p>\n<pre><code>'welcome' =&gt; 'Welcome, :name',<\/code><\/pre>\n<p>Lub w <code>de.josn<\/code>pliku,<\/p>\n<pre><code>{\n\u00a0\u00a0\u00a0\u00a0\"How are you?\": \"Wie geht es dir, :name?\"\n}<\/code><\/pre>\n<p>Aby zast\u0105pi\u0107 symbole zast\u0119pcze w aplikacji, musimy napisa\u0107 poni\u017cszy kod.<\/p>\n<pre><code>{{ __('messages.welcome', ['name' =&gt; 'John']) }}\n\u00a0\n{{ __('How are you?', ['name' =&gt; 'John']) }}<\/code><\/pre>\n<p>Je\u015bli zapiszemy symbol zast\u0119pczy jako &#8217;:NAME&#8217;, wynik b\u0119dzie 'JAN&#8217;, a dla &#8217;:Name&#8217; wynik b\u0119dzie 'Jan&#8217;.<\/p>\n<p>Mam nadziej\u0119, \u017ce rozumiesz jak stworzy\u0107 wieloj\u0119zyczn\u0105 stron\u0119 w PHP z wykorzystaniem frameworka Laravel. Podziel si\u0119 swoimi przemy\u015bleniami i sugestiami w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-przesylac-i-kompresowac-obrazy-w-laravel\/\" title=\"Przewodnik po przesy\u0142aniu i kompresowaniu obraz\u00f3w w Laravel\">Przewodnik po przesy\u0142aniu i kompresowaniu obraz\u00f3w w Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-zainstalowac-i-uzywac-ckeditor-w-laravel\/\" title=\"Jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel?\">Jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel?<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-korzystac-z-laravel-tinker\/\" title=\"Jak korzysta\u0107 z Laravel Tinker\">Jak korzysta\u0107 z Laravel Tinker<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chcesz stworzy\u0107 wieloj\u0119zyczn\u0105 stron\u0119 internetow\u0105 w php? W tym artykule poka\u017c\u0119, jak mo\u017cna stworzy\u0107 wieloj\u0119zyczn\u0105 stron\u0119 internetow\u0105 za pomoc\u0105 Laravel<\/p>\n","protected":false},"author":1,"featured_media":21641,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[501],"tags":[847],"class_list":["post-29161","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=29161"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29161\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21641"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=29161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=29161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=29161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}