aplat

Documents structurés pour Unix
git clone git://git.asteride.xyz/~ldp/aplat.git
Journaux | Fichiers | Références | LISEZ-MOI | LICENCE

commit 732e5deef2ba5ef054fb424fc240926dd3fc6c0b
parent b4ec76c874658c0af348da396bee582b8c8901f0
Auteur: Selve <selve@asteride.xyz>
Date:   Sun, 21 Jan 2024 10:15:05 -0500

internationalisation avec gettext plutôt qu'avec catgets

Diffstat:
MMakefile | 8+++++---
Maplat.c | 22++++++++++++----------
Apo/modele.pot | 32++++++++++++++++++++++++++++++++
Dtrad.h | 18------------------
4 files changed, 49 insertions(+), 31 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,16 +1,18 @@ COPT_SPCL = -O2 -DNDEBUG COPT = -Wall -Wextra -Werror -Wpedantic --std=c89 ${COPT_SPCL} CC = cc -PREFIX = "/usr/local/bin" +PREFIX = /usr/local/bin +I18N_DOS = '"/usr/local/share/locale"' +CPPOPT = -I/usr/local/include -DI18N_DOMAINE='"aplat"' -DI18N_DOS=${I18N_DOS} .SUFFIXES: .c .o .c.o: - ${CC} ${COPT} -c "$<" + ${CC} ${COPT} ${CPPOPT} -c "$<" all: aplat aplat: aplat.o tampon.o - ${CC} ${COPT} -o "$@" aplat.o tampon.o + ${CC} ${COPT} -L/usr/local/lib -lintl -o "$@" aplat.o tampon.o install: aplat install -m 755 aplat ${PREFIX}/aplat diff --git a/aplat.c b/aplat.c @@ -2,8 +2,8 @@ #include <stdio.h> #include <stdlib.h> -#include <nl_types.h> -#include "trad.h" +#include <libintl.h> +#include <locale.h> #include "tampon.h" @@ -23,6 +23,8 @@ #define JT_FCT 2 /* séparateur fictif */ #define JT_ATM 3 /* atome */ +#define _(c) gettext(c) + static void utilisation(void); static int transformer(FILE *); static int prch_jeton(FILE *, struct tampon *, int); @@ -31,7 +33,6 @@ static int guillemets(FILE *, struct tampon *); static int bloc(FILE *, struct tampon *); char *nom_prog; /* nom du programme */ -nl_catd catd; struct tampon etq; /* tampon à étiquettes */ struct tampon ctn; /* tampon à texte */ @@ -42,7 +43,10 @@ main(int argc, char **argv) if ((nom_prog = argv[0]) == NULL || nom_prog[0] == '\0') nom_prog = "aplat"; - catd = catopen("aplat", 0); + setlocale(LC_ALL, ""); + /*setlocale(LC_MESSAGES, "");*/ + bindtextdomain(I18N_DOMAINE, I18N_DOS); + textdomain(I18N_DOMAINE); if (argc > 1) { utilisation(); @@ -62,8 +66,7 @@ main(int argc, char **argv) static void utilisation(void) { - printf(catgets(catd, ESMBL, TRAD_I_UTILISATION, TRAD_M_UTILISATION), - nom_prog); + printf(_("Utilisation: %s <[fichier]\n"), nom_prog); } static int transformer(FILE *f) @@ -83,7 +86,8 @@ static int transformer(FILE *f) return 0; default: fprintf(stderr, - catgets(catd, ESMBL, TRAD_I_ERR_PREMCAR, TRAD_M_ERR_PREMCAR), + _("%s: le premier caractère affichable " + "doit être « ( »\n"), nom_prog); return -1; } @@ -158,9 +162,7 @@ ferm: assert(0); deseq: - fprintf(stderr, - catgets(catd, ESMBL, TRAD_I_ERR_PAR, TRAD_M_ERR_PAR), - nom_prog); + fprintf(stderr, _("%s: parenthèses déséquilibrées\n"), nom_prog); return -1; } diff --git a/po/modele.pot b/po/modele.pot @@ -0,0 +1,32 @@ +# Modèle pour la traduction de aplat +# Copyright (C) 2024 Selve +# Ce fichier est distribué sous la même licence que aplat. +# Selve <selve@asteride.xyz>, 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: PAQUET VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-01-21 10:12-0500\n" +"PO-Revision-Date: AAAA-MM-JJ HH:MM+FUSEAU\n" +"Last-Translator: PRÉNOM NOM <ADRESSE@COURRIEL>\n" +"Language-Team: LANGUE <LL@DOMAINE>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: aplat.c:69 +#, c-format +msgid "Utilisation: %s <[fichier]\n" +msgstr "" + +#: aplat.c:89 +#, c-format +msgid "%s: le premier caractère affichable doit être « ( »\n" +msgstr "" + +#: aplat.c:165 +#, c-format +msgid "%s: parenthèses déséquilibrées\n" +msgstr "" diff --git a/trad.h b/trad.h @@ -1,18 +0,0 @@ -#ifndef TRAD_H -#define TRAD_H - -#define ESMBL 1 /* ensemble pour catgets */ - -#define TRAD_I_UTILISATION 1 -#define TRAD_M_UTILISATION \ -"UTILISATION: %s <[fichier]\n" - -#define TRAD_I_ERR_PREMCAR 2 -#define TRAD_M_ERR_PREMCAR \ -"%s: le premier caractère affichable doit être « ( »\n" - -#define TRAD_I_ERR_PAR 3 -#define TRAD_M_ERR_PAR \ -"%s: parenthèses déséquilibrées\n" - -#endif