mirror of https://github.com/acanas/swad-core.git
Version 21.99: Jun 22, 2022 New language: Turkish.
This commit is contained in:
parent
daa465ddb8
commit
6757d7a86f
9
Makefile
9
Makefile
|
@ -108,7 +108,7 @@ LIBS = -lssl -lcrypto -lpthread -lrt -lmysqlclient -lz -L/usr/lib64/mysql -lm -l
|
|||
# CFLAGS = -Wall -Wextra -mtune=native -O2 -s
|
||||
CFLAGS = -Wall -Wextra -mtune=native -O2
|
||||
|
||||
all: swad_ca swad_de swad_en swad_es swad_fr swad_gn swad_it swad_pl swad_pt
|
||||
all: swad_ca swad_de swad_en swad_es swad_fr swad_gn swad_it swad_pl swad_pt swad_tr
|
||||
|
||||
swad_ca: $(OBJS) $(SOAPOBJS) $(SHAOBJS)
|
||||
$(CC) $(CFLAGS) -c -D L=1 swad_help_URL.c swad_text.c swad_text_action.c swad_text_no_html.c
|
||||
|
@ -155,7 +155,12 @@ swad_pt: $(OBJS) $(SOAPOBJS)
|
|||
$(CC) $(CFLAGS) -o $@ $(OBJS) swad_help_URL.o swad_text.o swad_text_action.o swad_text_no_html.o $(SOAPOBJS) $(SHAOBJS) $(LIBS)
|
||||
chmod a+x $@
|
||||
|
||||
swad_tr: $(OBJS) $(SOAPOBJS)
|
||||
$(CC) $(CFLAGS) -c -D L=10 swad_help_URL.c swad_text.c swad_text_action.c swad_text_no_html.c
|
||||
$(CC) $(CFLAGS) -o $@ $(OBJS) swad_help_URL.o swad_text.o swad_text_action.o swad_text_no_html.o $(SOAPOBJS) $(SHAOBJS) $(LIBS)
|
||||
chmod a+x $@
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
clean:
|
||||
rm -f swad swad_ca swad_de swad_en swad_es swad_fr swad_gn swad_it swad_pl swad_pt swad_help_URL.o swad_text.o swad_text_no_html.o swad_text_action.o $(OBJS)
|
||||
rm -f swad swad_ca swad_de swad_en swad_es swad_fr swad_gn swad_it swad_pl swad_pt swad_tr swad_help_URL.o swad_text.o swad_text_no_html.o swad_text_action.o $(OBJS)
|
||||
|
|
BIN
sha2/sha2.o
BIN
sha2/sha2.o
Binary file not shown.
|
@ -431,6 +431,7 @@ CREATE TABLE IF NOT EXISTS cty_countrs (
|
|||
Name_it VARCHAR(767) NOT NULL,
|
||||
Name_pl VARCHAR(767) NOT NULL,
|
||||
Name_pt VARCHAR(767) NOT NULL,
|
||||
Name_tr VARCHAR(767) NOT NULL,
|
||||
WWW_ca VARCHAR(255) NOT NULL,
|
||||
WWW_de VARCHAR(255) NOT NULL,
|
||||
WWW_en VARCHAR(255) NOT NULL,
|
||||
|
@ -440,6 +441,7 @@ CREATE TABLE IF NOT EXISTS cty_countrs (
|
|||
WWW_it VARCHAR(255) NOT NULL,
|
||||
WWW_pl VARCHAR(255) NOT NULL,
|
||||
WWW_pt VARCHAR(255) NOT NULL,
|
||||
WWW_tr VARCHAR(255) NOT NULL,
|
||||
UNIQUE INDEX(CtyCod),
|
||||
UNIQUE INDEX(Alpha2),
|
||||
INDEX(Name_ca),
|
||||
|
@ -450,7 +452,8 @@ CREATE TABLE IF NOT EXISTS cty_countrs (
|
|||
INDEX(Name_gn),
|
||||
INDEX(Name_it),
|
||||
INDEX(Name_pl),
|
||||
INDEX(Name_pt));
|
||||
INDEX(Name_pt),
|
||||
INDEX(Name_tr));
|
||||
--
|
||||
-- Table dbg_debug: used for debugging purposes
|
||||
--
|
||||
|
|
|
@ -48,6 +48,5 @@ void Btn_PutConfirmButton (const char *TxtButton);
|
|||
void Btn_PutConfirmButtonInline (const char *TxtButton);
|
||||
void Btn_PutRemoveButton (const char *TxtButton);
|
||||
void Btn_PutRemoveButtonInline (const char *TxtButton);
|
||||
// void Btn_PutCloseTabButton (const char *TxtButton);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -606,10 +606,17 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
|
|||
|
||||
TODO: Attach pdf files in multimedia.
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 21.98.6 (2022-06-21)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 21.99 (2022-06-22)"
|
||||
#define CSS_FILE "swad21.97.1.css"
|
||||
#define JS_FILE "swad21.97.4.js"
|
||||
/*
|
||||
Version 21.99: Jun 22, 2022 New language: Turkish. (331259 lines)
|
||||
2 changes necessary in database:
|
||||
ALTER TABLE cty_countrs ADD COLUMN Name_tr VARCHAR(767) NOT NULL AFTER Name_pt,ADD INDEX (Name_tr);
|
||||
ALTER TABLE cty_countrs ADD COLUMN WWW_tr VARCHAR(255) NOT NULL AFTER WWW_pt;
|
||||
Add Turkish language to Apache config files
|
||||
Add Turkish language to swad_copy.sh
|
||||
|
||||
Version 21.98.6: Jun 21, 2022 Some messages translated. (322554 lines)
|
||||
Version 21.98.5: Jun 21, 2022 Some messages translated. (322554 lines)
|
||||
Version 21.98.4: Jun 21, 2022 Some messages translated. (322555 lines)
|
||||
|
|
|
@ -958,7 +958,7 @@ mysql> DESCRIBE cty_countrs;
|
|||
+----------------+--------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+----------------+--------------+------+-----+---------+-------+
|
||||
| CtyCod | int(11) | NO | PRI | NULL | |
|
||||
| CtyCod | int | NO | PRI | NULL | |
|
||||
| Alpha2 | char(2) | NO | UNI | NULL | |
|
||||
| MapAttribution | text | NO | | NULL | |
|
||||
| Name_ca | varchar(767) | NO | MUL | NULL | |
|
||||
|
@ -970,6 +970,7 @@ mysql> DESCRIBE cty_countrs;
|
|||
| Name_it | varchar(767) | NO | MUL | NULL | |
|
||||
| Name_pl | varchar(767) | NO | MUL | NULL | |
|
||||
| Name_pt | varchar(767) | NO | MUL | NULL | |
|
||||
| Name_tr | varchar(767) | NO | MUL | NULL | |
|
||||
| WWW_ca | varchar(255) | NO | | NULL | |
|
||||
| WWW_de | varchar(255) | NO | | NULL | |
|
||||
| WWW_en | varchar(255) | NO | | NULL | |
|
||||
|
@ -979,8 +980,9 @@ mysql> DESCRIBE cty_countrs;
|
|||
| WWW_it | varchar(255) | NO | | NULL | |
|
||||
| WWW_pl | varchar(255) | NO | | NULL | |
|
||||
| WWW_pt | varchar(255) | NO | | NULL | |
|
||||
| WWW_tr | varchar(255) | NO | | NULL | |
|
||||
+----------------+--------------+------+-----+---------+-------+
|
||||
21 rows in set (0,00 sec)
|
||||
23 rows in set (0,00 sec)
|
||||
*/
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS cty_countrs ("
|
||||
"CtyCod INT NOT NULL,"
|
||||
|
@ -995,6 +997,7 @@ mysql> DESCRIBE cty_countrs;
|
|||
"Name_it VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
||||
"Name_pl VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
||||
"Name_pt VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
||||
"Name_tr VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
||||
"WWW_ca VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
||||
"WWW_de VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
||||
"WWW_en VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
||||
|
@ -1004,6 +1007,7 @@ mysql> DESCRIBE cty_countrs;
|
|||
"WWW_it VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
||||
"WWW_pl VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
||||
"WWW_pt VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
||||
"WWW_tr VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
||||
"UNIQUE INDEX(CtyCod),UNIQUE INDEX(Alpha2),"
|
||||
"INDEX(Name_ca),"
|
||||
"INDEX(Name_de),"
|
||||
|
@ -1013,7 +1017,8 @@ mysql> DESCRIBE cty_countrs;
|
|||
"INDEX(Name_gn),"
|
||||
"INDEX(Name_it),"
|
||||
"INDEX(Name_pl),"
|
||||
"INDEX(Name_pt))"); // ISO 3166-1 country codes
|
||||
"INDEX(Name_pt),"
|
||||
"INDEX(Name_tr))"); // ISO 3166-1 country codes
|
||||
|
||||
/***** Table deg_types *****/
|
||||
/*
|
||||
|
|
402
swad_help_URL.c
402
swad_help_URL.c
File diff suppressed because it is too large
Load Diff
|
@ -64,6 +64,7 @@ const char *Lan_STR_LANG_ID[1 + Lan_NUM_LANGUAGES] = // ISO 639-1 language codes
|
|||
[Lan_LANGUAGE_IT ] = "it",
|
||||
[Lan_LANGUAGE_PL ] = "pl",
|
||||
[Lan_LANGUAGE_PT ] = "pt",
|
||||
[Lan_LANGUAGE_TR ] = "tr",
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
/***************************** Public constants ******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Lan_NUM_LANGUAGES 9 // From 1 to 9. 0 is reserved to unknown language
|
||||
#define Lan_NUM_LANGUAGES 10 // From 1 to 10. 0 is reserved to unknown language
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************* Public types ********************************/
|
||||
|
@ -35,16 +35,17 @@
|
|||
|
||||
typedef enum
|
||||
{
|
||||
Lan_LANGUAGE_UNKNOWN = 0,
|
||||
Lan_LANGUAGE_CA = 1,
|
||||
Lan_LANGUAGE_DE = 2,
|
||||
Lan_LANGUAGE_EN = 3,
|
||||
Lan_LANGUAGE_ES = 4,
|
||||
Lan_LANGUAGE_FR = 5,
|
||||
Lan_LANGUAGE_GN = 6,
|
||||
Lan_LANGUAGE_IT = 7,
|
||||
Lan_LANGUAGE_PL = 8,
|
||||
Lan_LANGUAGE_PT = 9,
|
||||
Lan_LANGUAGE_UNKNOWN = 0,
|
||||
Lan_LANGUAGE_CA = 1,
|
||||
Lan_LANGUAGE_DE = 2,
|
||||
Lan_LANGUAGE_EN = 3,
|
||||
Lan_LANGUAGE_ES = 4,
|
||||
Lan_LANGUAGE_FR = 5,
|
||||
Lan_LANGUAGE_GN = 6,
|
||||
Lan_LANGUAGE_IT = 7,
|
||||
Lan_LANGUAGE_PL = 8,
|
||||
Lan_LANGUAGE_PT = 9,
|
||||
Lan_LANGUAGE_TR = 10,
|
||||
} Lan_Language_t; // ISO 639-1 language codes
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
5514
swad_text.c
5514
swad_text.c
File diff suppressed because it is too large
Load Diff
2906
swad_text_action.c
2906
swad_text_action.c
File diff suppressed because it is too large
Load Diff
|
@ -95,6 +95,8 @@ const char *Txt_Country_NO_HTML =
|
|||
"Kraj";
|
||||
#elif L==9
|
||||
"País";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_Confirmation_of_your_email_NO_HTML = // Don't use HTML entities like è here
|
||||
|
@ -116,6 +118,8 @@ const char *Txt_Confirmation_of_your_email_NO_HTML = // Don't use HTML entities
|
|||
"Potwierdzenie Twojego adresu e-mail";
|
||||
#elif L==9
|
||||
"Confirmação do seu email";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
// The following variables are compilated together in all languages because they are used in emails...
|
||||
|
@ -314,6 +318,8 @@ const char *Txt_If_you_just_requested_from_X_the_confirmation_of_your_email_Y_NO
|
|||
"Se não foi você, não clique no link acima!"
|
||||
" Nesse caso, recomendamos que você verifique em %s"
|
||||
" se você confirmou seu endereço de e-mail.\n\n";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_If_you_no_longer_wish_to_receive_email_notifications_NO_HTML[1 + Lan_NUM_LANGUAGES] = // Don't use HTML entities like è here
|
||||
|
@ -358,6 +364,8 @@ const char *Txt_Institutions_NO_HTML =
|
|||
"Instytucje";
|
||||
#elif L==9
|
||||
"Instituções";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_MSG_From_NO_HTML[1 + Lan_NUM_LANGUAGES] = // Don't use HTML entities like è here
|
||||
|
@ -861,6 +869,8 @@ const char *Txt_The_following_password_has_been_assigned_to_you_to_log_in_X_NO_H
|
|||
" alguém que conhece seu ID, alcunha ou e-mail solicitou uma nova senha enviada para você.\n"
|
||||
"Esta nova senha foi enviada apenas para o endereço de e-mail %s,"
|
||||
" que está no seu cartão de registro.\n\n";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_could_not_create_file_NO_HTML = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -882,6 +892,8 @@ const char *Txt_UPLOAD_FILE_could_not_create_file_NO_HTML = // Warning: it is ve
|
|||
"%s: nie mozna utworzyc plik.";
|
||||
#elif L==9
|
||||
"%s: não foi possível criar arquivo.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_Forbidden_NO_HTML =
|
||||
|
@ -903,6 +915,8 @@ const char *Txt_UPLOAD_FILE_Forbidden_NO_HTML =
|
|||
"Nie mozesz tutaj tworzyc plików.";
|
||||
#elif L==9
|
||||
"Você não pode criar arquivos aqui.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_You_must_specify_the_file_NO_HTML =
|
||||
|
@ -924,6 +938,8 @@ const char *Txt_UPLOAD_FILE_You_must_specify_the_file_NO_HTML =
|
|||
"Musisz okreslic plik.";
|
||||
#elif L==9
|
||||
"Você deve especificar o arquivo.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_X_extension_not_allowed_NO_HTML = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -945,6 +961,8 @@ const char *Txt_UPLOAD_FILE_X_extension_not_allowed_NO_HTML = // Warning: it is
|
|||
"%s: rozszerzenie pliku jest niedozwolone.";
|
||||
#elif L==9
|
||||
"%s: extensão não permitida.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_X_file_already_exists_NO_HTML = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -966,6 +984,8 @@ const char *Txt_UPLOAD_FILE_X_file_already_exists_NO_HTML = // Warning: it is ve
|
|||
"%s: plik juz istnieje.";
|
||||
#elif L==9
|
||||
"%s: o arquivo já existe.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_File_too_large_maximum_X_MiB_NO_HTML = // Warning: it is very important to include %lu in the following sentences
|
||||
|
@ -996,6 +1016,8 @@ const char *Txt_UPLOAD_FILE_File_too_large_maximum_X_MiB_NO_HTML = // Warning: i
|
|||
#elif L==9
|
||||
"Arquivo muito grande (máximo %lu MiB) /"
|
||||
" outro problema de upload.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_Invalid_name_NO_HTML = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -1017,6 +1039,8 @@ const char *Txt_UPLOAD_FILE_Invalid_name_NO_HTML = // Warning: it is very import
|
|||
"Bledna nazwa.";
|
||||
#elif L==9
|
||||
"Nome inválido.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_X_invalid_name_NO_HTML = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -1038,6 +1062,8 @@ const char *Txt_UPLOAD_FILE_X_invalid_name_NO_HTML = // Warning: it is very impo
|
|||
"%s: bledna nazwa.";
|
||||
#elif L==9
|
||||
"%s: nome inválido.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_X_MIME_type_Y_not_allowed_NO_HTML = // Warning: it is very important to include two %s in the following sentences
|
||||
|
@ -1059,6 +1085,8 @@ const char *Txt_UPLOAD_FILE_X_MIME_type_Y_not_allowed_NO_HTML = // Warning: it i
|
|||
"%s: Typ MIME %s jest niedozwolony.";
|
||||
#elif L==9
|
||||
"%s: Tipo MIME %s não permitido.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_X_not_HTML_NO_HTML = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -1080,6 +1108,8 @@ const char *Txt_UPLOAD_FILE_X_not_HTML_NO_HTML = // Warning: it is very importan
|
|||
"%s: nie HTML.";
|
||||
#elif L==9
|
||||
"%s: não HTML.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_X_quota_exceeded_NO_HTML = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -1101,6 +1131,8 @@ const char *Txt_UPLOAD_FILE_X_quota_exceeded_NO_HTML = // Warning: it is very im
|
|||
"%s: przekroczono przydzial.";
|
||||
#elif L==9
|
||||
"5s: quota excedida.";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_UPLOAD_FILE_Upload_time_too_long_maximum_X_minutes_NO_HTML = // Warning: it is very important to include %lu in the following sentences
|
||||
|
@ -1122,6 +1154,8 @@ const char *Txt_UPLOAD_FILE_Upload_time_too_long_maximum_X_minutes_NO_HTML = //
|
|||
"Upload time too long (maximum %lu minuty)."; // Potrzebujesz tlumaczenie
|
||||
#elif L==9
|
||||
"Tempo de upload muito longo (máximo %lu minutos).";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_user_NO_HTML[Usr_NUM_SEXS][1 + Lan_NUM_LANGUAGES] = // Don't use HTML entities like è here
|
||||
|
@ -1138,6 +1172,7 @@ const char *Txt_user_NO_HTML[Usr_NUM_SEXS][1 + Lan_NUM_LANGUAGES] = // Don't use
|
|||
[Lan_LANGUAGE_IT ] = "utente",
|
||||
[Lan_LANGUAGE_PL ] = "uzytkownika",
|
||||
[Lan_LANGUAGE_PT ] = "utilizador/a",
|
||||
[Lan_LANGUAGE_TR ] = "", // Çeviri lazim!
|
||||
},
|
||||
[Usr_SEX_FEMALE] =
|
||||
{
|
||||
|
@ -1151,6 +1186,7 @@ const char *Txt_user_NO_HTML[Usr_NUM_SEXS][1 + Lan_NUM_LANGUAGES] = // Don't use
|
|||
[Lan_LANGUAGE_IT ] = "utente",
|
||||
[Lan_LANGUAGE_PL ] = "uzytkownika",
|
||||
[Lan_LANGUAGE_PT ] = "utilizadora",
|
||||
[Lan_LANGUAGE_TR ] = "", // Çeviri lazim!
|
||||
},
|
||||
[Usr_SEX_MALE] =
|
||||
{
|
||||
|
@ -1164,6 +1200,7 @@ const char *Txt_user_NO_HTML[Usr_NUM_SEXS][1 + Lan_NUM_LANGUAGES] = // Don't use
|
|||
[Lan_LANGUAGE_IT ] = "utente",
|
||||
[Lan_LANGUAGE_PL ] = "uzytkownika",
|
||||
[Lan_LANGUAGE_PT ] = "utilizador",
|
||||
[Lan_LANGUAGE_TR ] = "", // Çeviri lazim!
|
||||
},
|
||||
[Usr_SEX_ALL] =
|
||||
{
|
||||
|
@ -1177,6 +1214,7 @@ const char *Txt_user_NO_HTML[Usr_NUM_SEXS][1 + Lan_NUM_LANGUAGES] = // Don't use
|
|||
[Lan_LANGUAGE_IT ] = "utente",
|
||||
[Lan_LANGUAGE_PL ] = "uzytkownika",
|
||||
[Lan_LANGUAGE_PT ] = "utilizador/a",
|
||||
[Lan_LANGUAGE_TR ] = "", // Çeviri lazim!
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -1199,4 +1237,6 @@ const char *Txt_Users_NO_HTML =
|
|||
"Uzytkowników";
|
||||
#elif L==9
|
||||
"Utilizadores";
|
||||
#elif L==10 // tr
|
||||
""; // Çeviri lazim!
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue