Unterstreiche `_` vor dem Formatstring

Lesezeit: 1 Minute

Benutzer-Avatar
Dacav

Ich schaue mir hier einen C-Quellcode an und habe Folgendes gefunden:

fprintf(stderr, _("Try `%s --help' for more information.\n"), command);

Ich habe den Unterstrich schon gesehen, als ich mir wxWidget angesehen habe, und ich habe gelesen, dass er für die Internationalisierung verwendet wird. Ich fand es wirklich schrecklich (der am wenigsten intuitive Name aller Zeiten), aber ich dachte, es ist nur eine weitere seltsame wxWidget-Konvention.

Jetzt finde ich es wieder in irgendeiner Alsa-Quelle. Weiß jemand woher es kommt?

  • Der Name ist in der Tat nicht intuitiv, ich denke, sie wollten hauptsächlich weniger Zeichen eingeben.

    – Matti Virkkunen

    26. Juli 2010 um 15:00 Uhr

  • Denken Sie darüber nach, nach … 2 Jahren? Verdammt, ich fühle mich so alt… Ich glaube, der Name wurde tatsächlich so gewählt, um den Übersetzungsaufwand bestehender Programme zu minimieren.

    – Dacav

    23. September 2013 um 12:19 Uhr

  • Was macht printf (_(“hello, world\n”)) bedeuten?, Was bedeutet _(“text”)dh Unterstrich-Klammer-Zeichen, tun?, Was macht _(„Text“), dh Unterstrich-Klammer-Zeichen,?

    – phuklv

    30. Dezember 2019 um 6:51 Uhr

Es kommt von GNU gettext, ein Paket zur Erleichterung des Internationalisierungsprozesses. Das _() Die Funktion ist einfach ein String-Wrapper. Diese Funktion ersetzt grundsätzlich die angegebene Zeichenfolge zur Laufzeit durch eine Übersetzung in der Sprache des Systems, falls verfügbar (d. h. wenn sie eine .mo Datei für diese Sprache mit dem Programm).

Benutzer-Avatar
Eismann

Es kommt von gettext. Ursprünglich gedacht, war die Internationalisierung zu lang, um sie jedes Mal einzugeben, wenn Sie eine internationalisierte Zeichenfolge benötigten. Also haben Programmierer die Abkürzung i18n erstellt (weil es 18 Buchstaben zwischen dem ‘i’ und dem ‘n’ in der Internationalisierung gibt) und Sie können Quellcode sehen, der damit verwendet wird. Anscheinend war i18n aber immer noch zu lang, also ist es jetzt nur noch ein Unterstrich.

Das wäre von gettext

1179300cookie-checkUnterstreiche `_` vor dem Formatstring

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy