{"id":25291,"date":"2016-10-10T12:24:14","date_gmt":"2016-10-10T12:24:14","guid":{"rendered":"https:\/\/dev.railscarma.com\/make-rails-application-multilingual\/"},"modified":"2022-09-06T08:22:58","modified_gmt":"2022-09-06T08:22:58","slug":"machen-sie-die-rails-anwendung-mehrsprachig","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/machen-sie-die-rails-anwendung-mehrsprachig\/","title":{"rendered":"So machen Sie Ihre Rails-Anwendung mehrsprachig"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"25291\" class=\"elementor elementor-25291\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6de2d749 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6de2d749\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1434b12f\" data-id=\"1434b12f\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-77cf116d elementor-widget elementor-widget-text-editor\" data-id=\"77cf116d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Rails-Gem-Ansatz, MySQL-Ansatz und eine mehrsprachige Rails-Struktur<\/h3>\n<p>Der Gro\u00dfteil der Welt spricht kein Englisch. Hier kommen Internationalisierung und Lokalisierung ins Spiel. Rails verf\u00fcgt \u00fcber eine gro\u00dfartige i18n-API.<br>Referenz:<a href=\"http:\/\/guides.rubyonrails.org\/i18n.html\"> http:\/\/guides.rubyonrails.org\/i18n.html<\/a><\/p>\n<p>Es bietet ein benutzerfreundliches und erweiterbares Framework f\u00fcr die \u00dcbersetzung Ihrer Anwendung in eine einzelne benutzerdefinierte Sprache au\u00dfer Englisch oder f\u00fcr die Bereitstellung mehrsprachiger Unterst\u00fctzung in unserer Anwendung.<\/p>\n<p><strong>I18n-API:<\/strong><br>Die wichtigsten Methoden der I18n-API sind:<br>\u00dcbersetzen Sie #. Suchen Sie nach Text\u00fcbersetzungen<br># lokalisieren Datums- und Uhrzeitobjekte in lokale Formate lokalisieren<\/p>\n<p>Diese haben die Aliase #t und #l, sodass Sie sie wie folgt verwenden k\u00f6nnen:<\/p>\n<pre><code>I18n.t &#039;app.title&#039; I18n.l Time.now<\/code><\/pre>\n<p><strong>Rails-i18n-Juwel:<\/strong><br><strong>Installation:<\/strong><br>Zur Gemfile hinzuf\u00fcgen:<\/p>\n<pre><code>gem &#039;rails-i18n&#039;, Github: &#039;svenfuchs\/rails-i18n&#039;, Zweig: &#039;master&#039; # F\u00fcr 5.x<\/code><\/pre>\n<p><strong>Aufbau:<\/strong><br>Standardm\u00e4\u00dfig l\u00e4dt Rails-i18n alle im Gem verf\u00fcgbaren Gebietsschemadateien sowie Pluralisierungs- und Transliterationsregeln. Dieses Verhalten kann ge\u00e4ndert werden, wenn wir in config\/environments\/* die Locales angeben, die \u00fcber die Option I18n.available_locales geladen werden m\u00fcssen:<\/p>\n<pre><code>config.i18n.available_locales = [&#039;es-CO&#039;, :de]<\/code><\/pre>\n<p>oder<\/p>\n<pre><code>config.i18n.available_locales = :nl<\/code><\/pre>\n<p>Wir k\u00f6nnen auch einen anderen Edelstein verwenden:<\/p>\n<p><strong>Juwel globalisieren:<\/strong><br>Rails I18n De-facto-Standardbibliothek f\u00fcr die ActiveRecord-Modell-\/Daten\u00fcbersetzung. Globalize baut auf der I18n-API in Ruby on Rails auf, um Modell\u00fcbersetzungen zu ActiveRecord-Modellen hinzuzuf\u00fcgen.<\/p>\n<p><strong>Installation:<\/strong><br>Wenn Sie Bundler verwenden, f\u00fcgen Sie dies in unsere Gemfile ein:<\/p>\n<pre><code>gem &#039;globalize&#039;, &#039;~&gt; 5.0.0&#039; Um Globalize mit Rails 5 zu verwenden, f\u00fcgen Sie dies in unsere Gemfile-Gem &#039;activemodel-serializers-xml&#039; ein.<\/code><\/pre>\n<p><b>2. Dokumentation: <\/b><a href=\"https:\/\/github.com\/globalize\/globalize\">https:\/\/github.com\/globalize\/globalize<\/a><br><\/p>\n<p><strong style=\"font-size: 16px; color: var( --e-global-color-text );\">DB Design f\u00fcr mehrsprachige App (Englisch und Arabisch):<\/strong><\/p>\n<p>Ansatz zur Unterst\u00fctzung von 2 oder 3 Sprachen:<\/p>\n<p><strong>1. S\u00e4ulenansatz:<\/strong><\/p>\n<pre><code>Erstellen Sie ein Spaltenansatzmodell mit Sprachspalten. \u201etitle_en\u201c varchar(255) NICHT NULL, \u201etitle_ar\u201c varchar(255) NICHT NULL,<\/code><\/pre>\n<p>Nun ist auch die Art und Weise, wie Sie es abfragen w\u00fcrden, recht einfach. Wir k\u00f6nnen dies tun, indem wir automatisch die richtigen Spalten entsprechend der gew\u00e4hlten Sprache ausw\u00e4hlen.<\/p>\n<p><strong>Vorteile:<\/strong><\/p>\n<ul>\n<li>Einfachheit \u2013 einfach umzusetzen<\/li>\n<li>Einfache Abfrage \u2013 keine JOINs erforderlich<\/li>\n<li>Keine Duplikate \u2013 hat keinen doppelten Inhalt<\/li>\n<\/ul>\n<p><strong>Nachteile:<\/strong><\/p>\n<ul>\n<li>Schwierig zu warten \u2013 funktioniert problemlos f\u00fcr 2-3 Sprachen, wird aber sehr schwierig, wenn Sie viele Spalten oder viele Sprachen haben<\/li>\n<li>Es ist schwierig, eine neue Sprache hinzuzuf\u00fcgen<\/li>\n<\/ul>\n<p><strong>2. \u00dcbersetzungstabellenansatz:<\/strong><br>F\u00fcr jede \u00fcbersetzbare Tabelle gibt es eine zugeh\u00f6rige \u00dcbersetzungstabelle.<\/p>\n<pre><code>CREATE TABLE PRODUCT (id int, PRICE NUMBER(18, 2)) CREATE TABLE PRODUCT_tr (id int, product_id INT FK, Sprachcode varchar, Namenstext, Beschreibungstext)<\/code><\/pre>\n<p>Auf diese Weise w\u00e4re bei mehreren \u00fcbersetzbaren Spalten nur ein einziger Join erforderlich, um sie abzurufen, und es k\u00f6nnte einfacher sein, Elemente zusammen mit den zugeh\u00f6rigen \u00dcbersetzungen zu importieren.<\/p>\n<ul>\n<li>Erfordert keine \u00c4nderung des Datenbankschemas f\u00fcr neue Sprachen (und somit keine Begrenzung von Code\u00e4nderungen)<\/li>\n<li>Ben\u00f6tigt nicht viel Platz f\u00fcr nicht implementierte Sprachen oder \u00dcbersetzungen eines bestimmten Elements<br>Bietet die gr\u00f6\u00dfte Flexibilit\u00e4t<\/li>\n<li>Am Ende haben wir keine sp\u00e4rlichen Tabellen<\/li>\n<li>Wir m\u00fcssen uns keine Gedanken \u00fcber Nullschl\u00fcssel machen und m\u00fcssen nicht pr\u00fcfen, ob wir eine vorhandene \u00dcbersetzung anstelle eines Nulleintrags anzeigen.<\/li>\n<\/ul>\n<p><strong>Mehrsprachige App mit Rails-5 (Englisch und Arabisch):<\/strong><br>Der Ansatz f\u00fcr mehrsprachige Rails-Anwendungen ist dem einsprachigen sehr \u00e4hnlich. Hier m\u00fcssen wir YAML-Sprachdateien f\u00fcr alle ben\u00f6tigten Sprachen definieren und der Rails-Anwendung mitteilen, welche Sprache sie aktuell verwenden soll. Wir machen das \u00fcber <strong>I18n.locale.<\/strong><\/p>\n<p>Festlegen von I18n.locale \u00fcber das URL-Pfadpr\u00e4fix<br>Wir m\u00f6chten, dass http:\/\/0.0.0.0:3000\/ar die arabische Version und http:\/\/0.0.0.0:3000\/en die englische Version anzeigt.<\/p>\n<p>config\/routes.rb<\/p>\n<pre><code>Myapp::Application.routes.draw do Scope &quot;(:locale)&quot;, :locale =&gt; \/en|ar\/ do root :to =&gt; &#039;page#index&#039; get &quot;page\/index&quot; end end<\/code><\/pre>\n<p>Stellen Sie ein <strong>before_filter<\/strong> in der app\/controllers\/application_controller.rb.<\/p>\n<pre><code>Klasse ApplicationController &lt; ActionController::Base protected_from_forgery before_filter :set_locale private def set_locale I18n.locale = params[:locale] || I18n.default_locale Ende Ende<\/code><\/pre>\n<p>Um es zu testen, gehen Sie zur URL;<\/p>\n<pre><code>http:\/\/0.0.0.0:3000\/ar<\/code><\/pre>\n<p>Oder<\/p>\n<pre><code>http:\/\/0.0.0.0:3000\/ar\/page\/index<\/code><\/pre>\n<p><strong>Festlegen einer Standardsprache:<\/strong><\/p>\n<pre><code>app\/controllers\/application_controller.rb: Klasse ApplicationController &lt; ActionController::Base protected_from_forgery before_filter :set_locale private def set_locale I18n.locale = params[:locale] || I18n.default_locale Rails.application.routes.default_url_options[:locale]= I18n.locale Ende Ende<\/code><\/pre>\n<p>Daher m\u00fcssen wir nichts weiter tun. Alle \u00fcber den Ger\u00fcstgenerator generierten Links werden automatisch entsprechend ge\u00e4ndert.<\/p>\n<p><strong>Festlegen von I18n.locale \u00fcber den HTTP-Header \u201eAccept Language\u201c des Browsers:<\/strong><\/p>\n<pre><code>app\/controllers\/application_controller.rbclass ApplicationController &lt; ActionController::Base protected_from_forgery before_filter :set_locale private def extract_locale_from_accept_lingual_header request.env[&#039;HTTP_ACCEPT_LANGUAGE&#039;].scan(\/^[az]{2}\/).first end def set_locale I18n.locale = extract_locale_from_accept_lingual_header || I18n.default_locale Ende Ende<\/code><\/pre>\n<p>Hier k\u00f6nnen wir unsere Routendatei \u00e4ndern:<\/p>\n<pre><code>config\/routes.rb: Myapp::Application.routes.draw erh\u00e4lt \u201epage\/index\u201c root :to =&gt; &#039;page#index&#039; end<\/code><\/pre>\n<p><strong>Speichern von I18n.locale in Sitzung<\/strong><\/p>\n<pre><code>app\/controllers\/set_mylingual_controller.rb: Klasse SetMylingualController &lt; ApplicationController #English def en I18n.locale = :en set_session_and_redirect end #Arabic def ar I18n.locale = :ar set_session_and_redirect end private def set_session_and_redirect session[:locale] = I18n.locale restart_to :back Rescue ActionController::RedirectBackError restart_to :root end end<\/code><\/pre>\n<p><strong>\u00c4nderung im Anwendungscontroller:<\/strong><\/p>\n<pre><code>app\/controllers\/application_controller.rb: Klasse ApplicationController &lt; ActionController::Base protected_from_forgery before_filter :set_locale private def set_locale I18n.locale = session[:locale] || I18n.default_locale session[:locale] = I18n.locale Ende Ende<\/code><\/pre>\n<p>F\u00fcr die Einstellung Arabisch:<\/p>\n<pre><code>http:\/\/0.0.0.0:3000\/set_mylanguage\/ar<\/code><\/pre>\n<p>F\u00fcr die Einstellung Englisch:<\/p>\n<pre><code>http:\/\/0.0.0.0:3000\/set_mylanguage\/en<\/code><\/pre>\n<p><strong>Textbl\u00f6cke im YAML-Format:<\/strong><\/p>\n<p>Erstellen Sie zun\u00e4chst die folgenden Verzeichnisse:<\/p>\n<pre><code>$ mkdir -p config\/locales\/models\/item $ mkdir -p config\/locales\/views\/item<\/code><\/pre>\n<p>F\u00fcgen Sie die folgenden Zeilen in die Datei config\/application.rb ein:<\/p>\n<p># Das Standardgebietsschema ist :en und alle \u00dcbersetzungen aus config\/locales\/*.rb,yml werden automatisch geladen.<\/p>\n<pre><code>config.i18n.load_path += Dir[Rails.root.join(&#039;config&#039;, &#039;locales&#039;, &#039;models&#039;, &#039;*&#039;, &#039;*.yml&#039;).to_s] config.i18n.load_path += Dir[Rails .root.join(&#039;config&#039;, &#039;locales&#039;, &#039;views&#039;, &#039;*&#039;, &#039;*.yml&#039;).to_s] config.i18n.default_locale = :en<\/code><\/pre>\n<p>Wir m\u00fcssen hier eine Datei erstellen; config\/locales\/models\/item<br>config\/locales\/models\/item\/ar.yml f\u00fcr Arabisch<br>und stellen Sie sicher, dass en.yml f\u00fcr Englisch vorhanden ist.<\/p>\n<p><strong>Englisches YAML:<\/strong><br>Da die meisten Dinge f\u00fcr Englisch bereits im System vorhanden sind<br>F\u00fcgen Sie das Folgende in die Datei en.yml ein.<\/p>\n<pre><code># Ruby-Kodierung: utf-8<\/code><\/pre>\n<pre><code>en: Ansichten: Anzeigen: Anzeigen Bearbeiten: Bearbeiten Zerst\u00f6ren: L\u00f6schen are_you_sure: Sind Sie sicher? zur\u00fcck: Zur\u00fcck Artikel: Index: Titel: Liste aller Artikel neu: Titel: Neuer Artikel flash_messages: item_was_successfully_created: \u201eArtikel wurde erfolgreich erstellt.\u201c<\/code><\/pre>\n<p><strong>Arabisches YAML:<\/strong><br>Wir m\u00fcssen Werte\/Texte auf Arabisch in ar.yml wie in en.yml einf\u00fcgen<br>Sogar wir k\u00f6nnen eine vorgefertigte Standard\u00fcbersetzung von Sven Fuchs aus seinem Github-Repository kopieren <a href=\"https:\/\/github.com\/svenfuchs\/rails-i18n\">https:\/\/github.com\/svenfuchs\/rails-i18n<\/a>:<\/p>\n<pre><code>$ cd config\/locales<\/code><\/pre>\n<pre><code>$ curl -O https:\/\/raw.github.com\/svenfuchs\/rails-i18n\/master\/rails\/locale\/ar.yml<\/code><\/pre>\n<p><strong>\u00dcbersetzen in Ansicht:<\/strong><br>Wir k\u00f6nnen human_attribute_name() f\u00fcr die Attribute verwenden und die Links m\u00fcssen mit I18n.t \u00fcbersetzt werden. Wir k\u00f6nnen number_to_currency() verwenden, um den Betrag\/Preis in formatierter Form anzuzeigen:<\/p>\n<p>Beispiele:<\/p>\n<pre><code>&nbsp;<\/code><\/pre>\n<h1>&lt;% = t &#039;views.item.index.listing_items&#039; %&gt;<\/h1>\n<pre><code>\n&lt;% = link_to I18n.t(&#039;views.show&#039;),@item %&gt; &lt;%= Item.human_attribute_name(:name) %&gt;&lt;%=Item.human_attribute_name(:description) %&gt; <\/code><\/pre>\n<p><strong>Flash-Nachrichten im Controller \u00fcbersetzen<\/strong><\/p>\n<pre><code>if @item.save format.html { weitergeleitet_zu @item, Hinweis: I18n.t(&#039;views.item.flash_messages.item_was_successfully_created&#039;) } format.json { json rendern: @item, Status: :erstellt, Speicherort: @item } else format.html { Aktion rendern: \u201eneu\u201c } format.json { json rendern: @item.errors, Status: :unprocessable_entity } Ende<\/code><\/pre>\n<p>F\u00fcr andere vorgefertigte Sprach\u00fcbersetzungen:<br><a href=\"https:\/\/github.com\/svenfuchs\/rails-i18n\/tree\/master\/rails\/locale\">https:\/\/github.com\/svenfuchs\/rails-i18n\/tree\/master\/rails\/locale<\/a><\/p>\n<div><strong>LUBAIB CEEJEY<\/strong><\/div>\n<div>Senior Ruby on Rails-Entwickler<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4c7aa788 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4c7aa788\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-74e0c222\" data-id=\"74e0c222\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7481491d elementor-widget elementor-widget-heading\" data-id=\"7481491d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Abonnieren Sie die neuesten Updates<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-21b3e2e8 elementor-widget elementor-widget-shortcode\" data-id=\"21b3e2e8\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"Lader\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"d7f7626ab9\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"E-Mail-Adresse\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"Name\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"Abonnieren\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"de\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">zusammenh\u00e4ngende Posts<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Kaminari-Juwel\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/kaminari-juwel\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"Kaminari-Juwel\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Kaminari-Juwel\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/kaminari-juwel\/?related_post_from=37277\">\r\n        Kaminari-Juwel  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Warum sollte man im Jahr 2026 Ruby on Rails-Entwickler anheuern?\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/warum-sollte-man-ruby-on-rails-entwickler-engagieren\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"Warum sollte man im Jahr 2022 Ruby-on-Rails-Entwickler einstellen?\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Warum sollte man im Jahr 2026 Ruby on Rails-Entwickler anheuern?\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/warum-sollte-man-ruby-on-rails-entwickler-engagieren\/?related_post_from=30627\">\r\n        Warum sollte man im Jahr 2026 Ruby on Rails-Entwickler anheuern?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Bedeutung der Softwarearchitektur in der Entwicklung von Unternehmenssoftware\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/bedeutung-der-softwarearchitektur-bei-der-entwicklung-von-unternehmenssoftware\/?related_post_from=36250\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"Bedeutung der Softwarearchitektur in der Entwicklung von Unternehmenssoftware\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Bedeutung der Softwarearchitektur in der Entwicklung von Unternehmenssoftware\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/bedeutung-der-softwarearchitektur-bei-der-entwicklung-von-unternehmenssoftware\/?related_post_from=36250\">\r\n        Bedeutung der Softwarearchitektur in der Entwicklung von Unternehmenssoftware  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE: Die besten IDEs f\u00fcr die Ruby on Rails-Entwicklung\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/ruby-idee-die-besten-ideen-fur-die-ruby-on-rails-entwicklung\/?related_post_from=36125\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"BESTE IDEEN F\u00dcR DIE RUBY ON RAILS-ENTWICKLUNG\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby IDE: Die besten IDEs f\u00fcr die Ruby on Rails-Entwicklung\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ror\/ruby-idee-die-besten-ideen-fur-die-ruby-on-rails-entwicklung\/?related_post_from=36125\">\r\n        Ruby IDE: Die besten IDEs f\u00fcr die Ruby on Rails-Entwicklung  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>Rails gem approach, MySQL approach and a Multilingual Rails structure Most of the world doesn&#8217;t speak English. That&#8217;s where internationalization and localization come in. Rails has a great i18n API.Reference: http:\/\/guides.rubyonrails.org\/i18n.html It provides an easy-to-use and extensible framework for translating your application to a single custom language other than English or for providing multi-language support &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/de\/blog\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Ruby Regex Match Guide (2026) mit Beispielen<\/span> Weiterlesen \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31860,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[],"class_list":["post-25291","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to make your Rails Application Multilingual - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"Rails gem approach, MySQL approach and a Multilingual Rails structure Most of the world doesn&#039;t speak English. That&#039;s where internationalization and\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/machen-sie-die-rails-anwendung-mehrsprachig\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to make your Rails Application Multilingual - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"Rails gem approach, MySQL approach and a Multilingual Rails structure Most of the world doesn&#039;t speak English. That&#039;s where internationalization and\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/machen-sie-die-rails-anwendung-mehrsprachig\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-10T12:24:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-06T08:22:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Multilingual-1-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"How to make your Rails Application Multilingual\",\"datePublished\":\"2016-10-10T12:24:14+00:00\",\"dateModified\":\"2022-09-06T08:22:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/\"},\"wordCount\":777,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Multilingual-1-1.jpg\",\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/\",\"url\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/\",\"name\":\"How to make your Rails Application Multilingual - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Multilingual-1-1.jpg\",\"datePublished\":\"2016-10-10T12:24:14+00:00\",\"dateModified\":\"2022-09-06T08:22:58+00:00\",\"description\":\"Rails gem approach, MySQL approach and a Multilingual Rails structure Most of the world doesn't speak English. That's where internationalization and\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Multilingual-1-1.jpg\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Multilingual-1-1.jpg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to make your Rails Application Multilingual\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"So gestalten Sie Ihre Rails-Anwendung mehrsprachig \u2013 RailsCarma \u2013 Ruby on Rails Development Company, spezialisiert auf Offshore-Entwicklung","description":"Rails-Gem-Ansatz, MySQL-Ansatz und eine mehrsprachige Rails-Struktur Der Gro\u00dfteil der Welt spricht kein Englisch. Hier geht es um Internationalisierung und","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/machen-sie-die-rails-anwendung-mehrsprachig\/","og_locale":"de_DE","og_type":"article","og_title":"How to make your Rails Application Multilingual - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"Rails gem approach, MySQL approach and a Multilingual Rails structure Most of the world doesn't speak English. That's where internationalization and","og_url":"https:\/\/www.railscarma.com\/de\/blog\/fachartikel\/machen-sie-die-rails-anwendung-mehrsprachig\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2016-10-10T12:24:14+00:00","article_modified_time":"2022-09-06T08:22:58+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Multilingual-1-1.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"Verfasst von":"admin","Gesch\u00e4tzte Lesezeit":"7\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"How to make your Rails Application Multilingual","datePublished":"2016-10-10T12:24:14+00:00","dateModified":"2022-09-06T08:22:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/"},"wordCount":777,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Multilingual-1-1.jpg","articleSection":["Technical Articles"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/","url":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/","name":"So gestalten Sie Ihre Rails-Anwendung mehrsprachig \u2013 RailsCarma \u2013 Ruby on Rails Development Company, spezialisiert auf Offshore-Entwicklung","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Multilingual-1-1.jpg","datePublished":"2016-10-10T12:24:14+00:00","dateModified":"2022-09-06T08:22:58+00:00","description":"Rails-Gem-Ansatz, MySQL-Ansatz und eine mehrsprachige Rails-Struktur Der Gro\u00dfteil der Welt spricht kein Englisch. Hier geht es um Internationalisierung und","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Multilingual-1-1.jpg","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2016\/10\/Multilingual-1-1.jpg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/blog\/technical-articles\/make-rails-application-multilingual\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"How to make your Rails Application Multilingual"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma \u2013 Ruby on Rails-Entwicklungsunternehmen, spezialisiert auf Offshore-Entwicklung","description":"RailsCarma ist ein Ruby on Rails-Entwicklungsunternehmen in Bangalore. Wir sind auf die Offshore-Ruby-on-Rails-Entwicklung mit Sitz in den USA und Indien spezialisiert. Stellen Sie erfahrene Ruby on Rails-Entwickler f\u00fcr das ultimative Web-Erlebnis ein.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"SchienenCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"Administrator","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/posts\/25291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/comments?post=25291"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/posts\/25291\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/media\/31860"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/media?parent=25291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/categories?post=25291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/de\/wp-json\/wp\/v2\/tags?post=25291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}