hw9: New homework
This commit is contained in:
24
09_I18nL10n/Makefile
Normal file
24
09_I18nL10n/Makefile
Normal file
@@ -0,0 +1,24 @@
|
||||
CFLAGS = -Wall -Wextra -std=c99 -g
|
||||
CPPFLAGS = -I.
|
||||
LDFLAGS =
|
||||
|
||||
EXEC = main
|
||||
|
||||
all: $(EXEC) po/ru/$(EXEC).mo
|
||||
|
||||
$(EXEC): $(EXEC).c
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $< $(LDFLAGS)
|
||||
|
||||
po/ru/$(EXEC).mo: po/ru/$(EXEC).po
|
||||
msgfmt --output-file=$@ $<
|
||||
|
||||
po/ru/$(EXEC).po: po/$(EXEC).pot
|
||||
msgmerge --update $@ $<
|
||||
|
||||
po/$(EXEC).pot: $(EXEC).c
|
||||
xgettext -k_ -j -lC -c -s -o po/main.pot main.c
|
||||
|
||||
clean:
|
||||
@rm -f $(EXEC) po/ru/*.mo *~
|
||||
|
||||
.PHONY: clean
|
||||
35
09_I18nL10n/main.c
Normal file
35
09_I18nL10n/main.c
Normal file
@@ -0,0 +1,35 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <libintl.h>
|
||||
#include <locale.h>
|
||||
|
||||
#define _(STRING) gettext(STRING)
|
||||
|
||||
int main() {
|
||||
setlocale (LC_ALL, "");
|
||||
bindtextdomain ("al_main", "."
|
||||
//getenv("PWD")
|
||||
);
|
||||
textdomain ("al_main");
|
||||
|
||||
printf(_("Choose integer x that 1 <= x <= 100\n"));
|
||||
int begin = 1;
|
||||
int end = 100 + 1;
|
||||
while (end - begin > 1)
|
||||
{
|
||||
int cur = (begin + end) / 2;
|
||||
printf(_("Please choose correct statement:\n"));
|
||||
printf("1: x < %d\n", cur);
|
||||
printf("2: x >= %d\n", cur);
|
||||
int user_input;
|
||||
scanf("%d", &user_input);
|
||||
if ( user_input == 1 ){
|
||||
end = cur;
|
||||
} else {
|
||||
begin = cur;
|
||||
}
|
||||
}
|
||||
printf(_("Your number is: %d\n"), begin);
|
||||
return 0;
|
||||
}
|
||||
33
09_I18nL10n/po/main.pot
Normal file
33
09_I18nL10n/po/main.pot
Normal file
@@ -0,0 +1,33 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-11-14 18:54+0300\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: main.c:12 main.c:16
|
||||
#, c-format
|
||||
msgid "Choose integer x that 1 <= x <= 100\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c:18 main.c:22
|
||||
#, c-format
|
||||
msgid "Please choose correct statement:\n"
|
||||
msgstr ""
|
||||
|
||||
#: main.c:29 main.c:33
|
||||
#, c-format
|
||||
msgid "Your number is: %d\n"
|
||||
msgstr ""
|
||||
34
09_I18nL10n/po/ru/main.po
Normal file
34
09_I18nL10n/po/ru/main.po
Normal file
@@ -0,0 +1,34 @@
|
||||
# Russian translations for I18nL10n package.
|
||||
# Copyright (C) 2020 THE I18nL10n'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the I18nL10n package.
|
||||
# Aleksey Lobanov <alex_cmc@likemath.ru>, 2020.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I18nL10n 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-11-14 18:54+0300\n"
|
||||
"PO-Revision-Date: 2020-11-14 18:01+0300\n"
|
||||
"Last-Translator: Aleksey Lobanov <alex_cmc@likemath.ru>\n"
|
||||
"Language-Team: Russian\n"
|
||||
"Language: ru_RU\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: main.c:12 main.c:16
|
||||
#, c-format
|
||||
msgid "Choose integer x that 1 <= x <= 100\n"
|
||||
msgstr "Выберите целое число x, что 1 <= x <= 100\n"
|
||||
|
||||
#: main.c:18 main.c:22
|
||||
#, c-format
|
||||
msgid "Please choose correct statement:\n"
|
||||
msgstr "Пожалуйста, выберите верное утверждение:\n"
|
||||
|
||||
#: main.c:29 main.c:33
|
||||
#, c-format
|
||||
msgid "Your number is: %d\n"
|
||||
msgstr "Ваше число: %d\n"
|
||||
BIN
09_I18nL10n/ru/LC_MESSAGES/main.mo
Normal file
BIN
09_I18nL10n/ru/LC_MESSAGES/main.mo
Normal file
Binary file not shown.
Reference in New Issue
Block a user