mihin tämä perustuu (menee gcc -kääntäjästä läpi aiheuttamatta virheilmoitusta):
printf (_(" at "));
tai
printf (_(" (inlined by) "));
????
ensimmäinen rivillä 271 ja jälkimmäinen rivillä 296, molemmat tiedostossa
addr2line.c Binutils -paketista ( binutils-2.22.tar.bz2 ).
kummassakin alaviiva ( _ ) on printf -kutsun sisällä mutta lainausmerkkien ULKOpuolella !!!
Mihin tuo perustuu ?
Ja mikä on ko. alaviivan merkitys ?
printf (_(" at "));
tai
printf (_(" (inlined by) "));
????
ensimmäinen rivillä 271 ja jälkimmäinen rivillä 296, molemmat tiedostossa
addr2line.c Binutils -paketista ( binutils-2.22.tar.bz2 ).
kummassakin alaviiva ( _ ) on printf -kutsun sisällä mutta lainausmerkkien ULKOpuolella !!!
Mihin tuo perustuu ?
Ja mikä on ko. alaviivan merkitys ?
Vastaukset 3
Vanhimmat
näyttääkö tutulta?
http://en.wikipedia.org/wiki/Gettext
http://linux.fi/wiki/Gettext
Entä+jos+haluan+vain+kääntää+ohjelman,+mutta+getText+-funktionaalisuus+ei+voisi+vähempää+kiinnostaa?
sivun+https://en.wikipedia.org/wiki/Gettext+mukaan:
printf(gettext("My+name+is+%s.\n"),+my_name);
would+become:
printf(_("My+name+is+%s.\n"),+my_name);
ja+tuo+siis+perustuu+tähän+(C+preprocessor):
#define+_(merkkijono)++++gettext(merkkijono)
Ilmeisesti+tuosta+gettextistä+saattaisi+päästä+eroon+näin+(ylläolevan+sijasta):
#define+_(merkkijono)++++fakegettext(merkkijono)
ja+sitten:
JOKO:
char+*+fakegettext(char*+A)+{
++return+A;
}
TAI:
char+*+fakegettext(const+char*+A)+{
++return+A;
}
Kumpi+on+parempi,+eli+laitetaanko+const+-lisämääreellä+vai+ilman+?
Ylläolevan+siis+olisi+tarkoitus+mahdollistaa+sellaisen+ohjelman+kääntäminen,+jossa+alkuperäinen+tekijä+on+käyttänyt+gettext+-systeemiä,+mutta+itse+haluaisin+kääntää+ohjelman+ilman+vaatimusta+asentaa+gettext+koneelleni.
#define _ (String) gettext (String)
printf (_(" at "));
Ellet halua localisointi makron vaihtavan " at " merkkijonoa jonkin toisen kielen vastaavaan merkkijonoon, poistat vain sen siitä printf() funktion sisältä, eli
printf(" klo: ");