<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ausgaben in zwei verschiedenen sprachen]]></title><description><![CDATA[<p>geschlossen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/312975/ausgaben-in-zwei-verschiedenen-sprachen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 07:50:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/312975.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Jan 2013 15:41:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Sun, 24 Feb 2013 10:20:02 GMT]]></title><description><![CDATA[<p>geschlossen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291040</guid><dc:creator><![CDATA[wisnia]]></dc:creator><pubDate>Sun, 24 Feb 2013 10:20:02 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Fri, 18 Jan 2013 15:47:48 GMT]]></title><description><![CDATA[<p>Du schreibst dir ein File (am besten ein File, was so aufgebaut ist wie ein ini-File, dann suchst du dir eine Bibliothek, die die bequem für dich verwalten).<br />
Das File kann bspw wie folgt aufgebaut werden:</p>
<pre><code>menuButton1=Spiel starten
menuButton2=Optionen
menuButton3=Spiel beenden
</code></pre>
<pre><code>menuButton1=Start game
menuButton2=Options
menuButton3=Quit
</code></pre>
<p>Dann lädst du den entsprechenden Text, speicherst ihn in Variablen und gibst ihn aus:</p>
<pre><code>//---
std::cout &lt;&lt; names[MENU_BUTTON_1] &lt;&lt; std::endl;
std::cout &lt;&lt; names[MENU_BUTTON_2] &lt;&lt; std::endl;
//...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2291050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291050</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Fri, 18 Jan 2013 15:47:48 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Fri, 18 Jan 2013 15:52:00 GMT]]></title><description><![CDATA[<p>Nur ein Vorschlag:</p>
<p>Definiere string-Varibalen für die Ausgaben und initialisiere sie dann entsprechend der Sprachauswahl.</p>
<pre><code>string Antwort1, Ausgabe3, .....
// hier die Sprache auwählen lassen

if (franz==false)
{
Antwort1 = &quot;Deutsche Antwort&quot;;
Ausgabe3 = &quot;Bitte druecken Sie ...&quot;;
}
else
{
Antwort1 = &quot;Franz Antwort&quot;;
Ausgabe3 = &quot;......&quot;;
}

// und später im Programm gibst du nur die Strings aus

cout &lt;&lt; Antwort1 &lt;&lt; endl;
//...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2291053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291053</guid><dc:creator><![CDATA[hmpff]]></dc:creator><pubDate>Fri, 18 Jan 2013 15:52:00 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Fri, 18 Jan 2013 15:57:20 GMT]]></title><description><![CDATA[<p>wisnia schrieb:</p>
<blockquote>
<p>Wie mache ich dies am besten?</p>
</blockquote>
<p>Hier gibt es mehrere Teilprobleme:<br />
1: Die Worte an sich müssen anders sein.<br />
Lösungsansatz: Die Ausgabe der Wörter wird abstrahiert. Anstatt <code>&quot;Hallo Welt&quot;</code> gibst du <code>hello_world_message[current_language]</code> aus, welches vorher irgendwo sinnvoll gefüllt wird.<br />
2: Darstellung von Zahlen und ähnlichem ist anders.<br />
Lösungsansatz: Dies wird mittels der locales direkt auf Sprachebene unterstützt.<br />
3: Grammatik ändert sich. Das heißt, die Position und möglicherweise sogar die Reihenfolge von dynamisch generierten Werten im Text ändert sich.<br />
Lösungsansatz:<br />
printf oder besser eine printf-artige Ausgabefunktion benutzen (z.B. mit C++11 variadic templates oder was fertiges von boost)<br />
4: Du musst damit rechnen, dass Unicode statt ASCII benutzt wird<br />
Lösungsansatz: Wird auch direkt auf Ebene der Standardbibliothek unterstützt, man muss bloß dran denken<br />
5: 1,2,3,4 ist sehr viel Arbeit und wahrscheinlich habe ich was wichtiges vergessen.<br />
Lösungsansatz: Google bemühen, ob es da fertige Bibliotheken gibt. &quot;ICU&quot; ist ein Name, den ich in dem Zusammenhang schon einmal gehört habe, Boost hat mindestens was für ein paar der Teilprobleme. Aber ich bin da nicht der Experte und Google kannst du auch selber nutzen.<br />
Lösungsansatz:</p>
<blockquote>
<p>Ist es sehr kompliziert?</p>
</blockquote>
<p>Wenn du das alles selber machen willst: Ja, sehr. Wenn du dir helfen lässt: Vermutlich mäßig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291057</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 18 Jan 2013 15:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Sun, 24 Feb 2013 10:20:22 GMT]]></title><description><![CDATA[<p>geschlossen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291069</guid><dc:creator><![CDATA[wisnia]]></dc:creator><pubDate>Sun, 24 Feb 2013 10:20:22 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Fri, 18 Jan 2013 16:15:12 GMT]]></title><description><![CDATA[<p>Da sich die Anzahl von Menü- und Textelementen normalerweise bei kleineren Anwendungen in Grenzen hält, bietet sich hier an, beide Versionen gleich in den Quellcode aufzunehmen und nicht in einer Datei aufbewahren. Vorschlag:</p>
<pre><code>#include ...

std::map&lt;std::string, std::pair&lt;std::string, std::string&gt; &gt;
</code></pre>
<p>Wie du den Inhalt der Container ansprichst, findest du in ihrer Dokumentation.<br />
Allerdings musst du immer für die richtige Ausgabe der Umlaute sorgen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <a href="http://www.c-plusplus.net/forum/39326-full" rel="nofollow">http://www.c-plusplus.net/forum/39326-full</a> und Google</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291072</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Fri, 18 Jan 2013 16:15:12 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Fri, 18 Jan 2013 16:17:02 GMT]]></title><description><![CDATA[<p>wisnia schrieb:</p>
<blockquote>
<p>2. ist printf nicht eher für C? Und nicht für C++?</p>
</blockquote>
<p>Geht auch in C++. Er schrieb aber auch dazu, lieber etwas ähnliches zu benutzen. Also so etwas wie printf, wo die Ausgabe zur Laufzeit formatiert wird, statt wie bei C++-Streams zur Compilezeit, aber typsicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291078</guid><dc:creator><![CDATA[Captain Obvious]]></dc:creator><pubDate>Fri, 18 Jan 2013 16:17:02 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Fri, 18 Jan 2013 16:29:00 GMT]]></title><description><![CDATA[<p>Mir tigerte auch einmal die Idee im Kopf herum, die Entwicklersprache im Quelltext zu verwenden und die String-Literale selber als Hashes für den lokalisierten Lookup zu verwenden. Bräuchte natürlich irgendeine Form von Synchronisation, wenn man einmal die Literale im Source-Code ersetzt. Das ist natürlich schwer umzusetzen. Dafür sieht der Entwickler im Quelltext, welcher Text dort sinngemäß erscheint und muss nicht erst einen externen string-table konsultieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291083</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 18 Jan 2013 16:29:00 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Fri, 18 Jan 2013 16:37:40 GMT]]></title><description><![CDATA[<p>Das ist nicht sehr praktikabel. Schon die Korrektur eines falsch gesetzten Kommas in der Quellsprache macht das Prinzip zunichte. Lieber sprechende, aber fixe Bezeichner nehmen. &quot;{Bitte_Taste_A_Drücken}&quot; versteht man wunderbar ohne Lookup.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291086</guid><dc:creator><![CDATA[Captain Obvious]]></dc:creator><pubDate>Fri, 18 Jan 2013 16:37:40 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Fri, 18 Jan 2013 16:43:04 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/34233">@Decimad</a>: Qt macht so was.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291092</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Fri, 18 Jan 2013 16:43:04 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Sun, 24 Feb 2013 10:20:56 GMT]]></title><description><![CDATA[<p>geschlossen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291093</guid><dc:creator><![CDATA[wisnia]]></dc:creator><pubDate>Sun, 24 Feb 2013 10:20:56 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Sun, 24 Feb 2013 10:21:13 GMT]]></title><description><![CDATA[<p>geschlossen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291094</guid><dc:creator><![CDATA[wisnia]]></dc:creator><pubDate>Sun, 24 Feb 2013 10:21:13 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Fri, 18 Jan 2013 17:24:33 GMT]]></title><description><![CDATA[<p>Abgesehen davon, dass die Sache mit dem [ini-]File optional ist und für ein kleines Progrämmchen vielleicht zuviel des Guten, ist der Vorschlag vernünftig. Nimm doch eine map&lt;string, map&lt;string, string&gt;&gt; und pack dort deine Texte rein:</p>
<pre><code class="language-cpp">std::map&lt;std::string, std::map&lt;std::string, std::string&gt;&gt; texts;
[...]
texts[&quot;english&quot;][&quot;hallo&quot;] = &quot;Hello world!&quot;;
texts[&quot;deutsch&quot;][&quot;hallo&quot;] = &quot;Hallo, Welt!&quot;;
[...]
std::string sprache = &quot;deutsch&quot;;
std::cout &lt;&lt; texts[sprache][&quot;hallo&quot;];
</code></pre>
<p>Mit dem neumodischen C++11 geht das bestimmt auch noch schöner.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291109</guid><dc:creator><![CDATA[Captain Obvious]]></dc:creator><pubDate>Fri, 18 Jan 2013 17:24:33 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Sun, 24 Feb 2013 10:21:30 GMT]]></title><description><![CDATA[<p>geschlossen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291116</guid><dc:creator><![CDATA[wisnia]]></dc:creator><pubDate>Sun, 24 Feb 2013 10:21:30 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Fri, 18 Jan 2013 17:50:06 GMT]]></title><description><![CDATA[<p>Bei kleinen Programmen geht das, aber bei großen oder auf Hauptschleifen basierenden Programmen, musst du das für jeden auszugebenden String machen oder direkt zwei Schleifen machen, da ist dann der Aufwand zu groß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291120</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Fri, 18 Jan 2013 17:50:06 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Sun, 24 Feb 2013 10:21:42 GMT]]></title><description><![CDATA[<p>geschlossen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2291124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2291124</guid><dc:creator><![CDATA[wisnia]]></dc:creator><pubDate>Sun, 24 Feb 2013 10:21:42 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgaben in zwei verschiedenen sprachen on Sun, 24 Feb 2013 10:21:58 GMT]]></title><description><![CDATA[<p>geschlossen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2293180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2293180</guid><dc:creator><![CDATA[wisnia]]></dc:creator><pubDate>Sun, 24 Feb 2013 10:21:58 GMT</pubDate></item></channel></rss>