Skip to content

Commit

Permalink
implemented InitLanguages function which iterates the languages direc…
Browse files Browse the repository at this point in the history
…tory
  • Loading branch information
Southclaws committed May 30, 2018
1 parent edc6dbc commit 343dbb3
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 37 deletions.
29 changes: 28 additions & 1 deletion language.inc
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
#define _language_included

#include <string>
#include <map>
#include <logger>
#include <map>
#include <fsutil>
#include <YSI\y_hooks>


Expand Down Expand Up @@ -104,6 +105,32 @@ stock DefineLanguageReplacement(key[], val[]) {
lang_TotalReplacements++;
}

stock InitLanguages() {
new
Directory:dir = OpenDir("./scriptfiles/"DIRECTORY_LANGUAGES),
entry[256],
ENTRY_TYPE:type,
name[64];

while(DirNext(dir, type, entry)) {
if(type == E_REGULAR) {
PathBase(entry, name);

dbg("language", "loading language file",
_s("entry", entry),
_s("name", name));

new id = InitLanguageFromFile(name);
if(id == -1) {
err("failed to load language",
_s("name", name));
}
}
}

CloseDir(dir);
}

stock InitLanguage(name[]) {
for(new languageid ; languageid < lang_Total; ++languageid) {
if(!strcmp(lang_Name[languageid], name)) {
Expand Down
8 changes: 6 additions & 2 deletions pawn.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,13 @@
"sampctl/samp-stdlib",
"Southclaws/samp-logger",
"pawn-lang/YSI-Includes",
"BigETI/pawn-map"
"BigETI/pawn-map",
"Southclaws/pawn-fsutil:1.0.3"
],
"runtime": {
"mode": "y_testing"
"version": "0.3.7",
"mode": "y_testing",
"rcon_password": "password",
"port": 7777
}
}
53 changes: 19 additions & 34 deletions test.pwn
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#define MAX_LANGUAGE 2
#pragma dynamic 16384

#include "language.inc"

Expand All @@ -12,42 +12,27 @@ hook OnScriptInit() {
dbg("language", "language debugging activated");
}

// Test:InitLanguageFromFile() {
// new ret;
Test:InitLanguages() {
InitLanguages();
}

// ret = InitLanguageFromFile("English");
// ASSERT(ret == 1);
// Test:AddLanguageEntry() {
// new
// languageid,
// ret;

// ret = InitLanguageFromFile("NonExistent");
// ASSERT(ret == -2);
// languageid = InitLanguage("TestLanguage1");
// ASSERT(languageid != -1);

// ret = InitLanguageFromFile("Empty");
// ASSERT(ret == -3);
// ret = AddLanguageEntry(languageid, "L1KEY01", "value");
// ASSERT(ret == 0);

// ret = InitLanguageFromFile("Espanol");
// ASSERT(ret == 1);
// new result[MAX_LANGUAGE_ENTRY_LENGTH];
// ret = _language_stringFromKey(languageid, "L1KEY01", result);
// ASSERT(ret == 0);
// ASSERT(!strcmp(result, "value"));
// printf("L1KEY01='%s'", result);

// ret = InitLanguageFromFile("English");
// ASSERT(ret == -1);
// ret = _language_stringFromKey(languageid, "L1KEY02", result);
// ASSERT(ret == 1);
// }

Test:AddLanguageEntry() {
new
languageid,
ret;

languageid = InitLanguage("TestLanguage1");
ASSERT(languageid != -1);

ret = AddLanguageEntry(languageid, "L1KEY01", "value");
ASSERT(ret == 0);

new result[MAX_LANGUAGE_ENTRY_LENGTH];
ret = _language_stringFromKey(languageid, "L1KEY01", result);
ASSERT(ret == 0);
ASSERT(!strcmp(result, "value"));
printf("L1KEY01='%s'", result);

ret = _language_stringFromKey(languageid, "L1KEY02", result);
ASSERT(ret == 1);
}

0 comments on commit 343dbb3

Please sign in to comment.