Skocz do zawartości

Rekomendowane odpowiedzi

Sourcemod oferuje nam bardzo wygodny system językowy, dzięki któremu jeden plugin może posiadać nieskończoną ilość wersji językowych, a wyświetlany język w danej chwili jest zależny od ustawienia serwera. Jednakże to, czy plugin będzie z tego korzystał, zależny tylko i wyłącznie od programisty. Ale niezależnie, czy umiesz programować czy nie, tłumaczenie pluginów jest proste i przyjemne. Jeśli plugin posiada wyżej wymienioną opcję to w paczce w której go pobrałeś powinien znajdować się folder /translations/ a w nim plik językowy z rozszerzeniem .phrases.txt. Jego zawartość jak w każdym pluginie wygląda podobnie:

"Phrases"
{
	"Bideo_Game_Dunky"
	{
		"en"		"i will see you grandpa"
		"jp"		"おじいちゃんに会いましょう"
		/* tutaj dalsze linie z kodem */
	}
	
	"Im_Done_With_League_Of_Legends"
	{
		"en"		"not even close baby"
		"jp"		"赤ちゃんも閉じない"
		/* tutaj dalsze linie z kodem */
	}
}

 

Nad pierwszymi klamrami znajduje się słowo kluczowe "Phrases", które mówi pluginowi "hej, to ja jestem ten plik od tłumaczeń".

 

W dalszych blokach możemy zauważyć takie bloki { } jak "Bideo_Game_Dunky" oraz "Im_Done_With_League_Of_Legends". Dla tłumacza, czyli w naszym wypadku nie mają one absolutnie żadnego znaczenia i nie możemy ich zmieniać, ponieważ są one zastosowane jako zmienne w pluginie i ich zmiana tylko zepsułaby tłumaczenie.

 

Dalej, między klamrami { } są już właściwe tłumaczenia, każdy język znajduje się w osobnej linii a format tłumaczenia frazy jest następujący:

		"kod_kraju"		"tłumaczenie"

 

Kod naszego kraju to oczywiście "pl". A więc wystarczy że dopiszemy następujące linie do pliku w ten sposób:

"Phrases"
{
	"Bideo_Game_Dunky"
	{
		"en"		"i will see you grandpa"
		"jp"		"おじいちゃんに会いましょう"
		"pl"		"zobaczę cię dziadku"
		/* tutaj dalsze linie z kodem */
	}
	
	"Im_Done_With_League_Of_Legends"
	{
		"en"		"not even close baby"
		"jp"		"赤ちゃんも閉じない"
		"pl"		"nawet nie blisko dziecko"
		/* tutaj dalsze linie z kodem */
	}
}

 

Zapisujemy plik, wgrywamy na miejsce jego oryginału, ustawiamy język serwera na polski i mamy przetłumaczony plugin! Aby zobaczyć jak wygląda normalny plik ze spolszczeniem możecie zajrzec do pluginu runda nożowa
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!. Miłego tłumaczenia!

 

 

 

PS. Pojawił się poradnik jak tłumaczyć pliki "solo", które nie posiadają *.phrases.txt. Link:

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

tak sobie pomyślałem, że przetłumacze plugin ale on nie posiada pliku "nazwa.phrases.txt" ani nic :/ i nie bardzo wiem, może po prostu zrobić ten plik? czy trzeba by było przerobić plugin?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
13 minut temu, Shadow napisał:

tak sobie pomyślałem, że przetłumacze plugin ale on nie posiada pliku "nazwa.phrases.txt" ani nic ? i nie bardzo wiem, może po prostu zrobić ten plik? czy trzeba by było przerobić plugin?

Hej! Tak jak napisałem w temacie

W dniu 10.07.2019 o 14:46, Vasto_Lorde napisał:

Jednakże to, czy plugin będzie z tego korzystał, zależny tylko i wyłącznie od programisty.

Musi to wprowadzić ten kto napisał/przerabiał plugin. Jeśli chcesz mogę napisać kolejny poradnik dotyczący tłumaczenia pluginów nie posiadających tej opcji

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
1 minutę temu, Vasto_Lorde napisał:

Hej! Tak jak napisałem w temacie

Musi to wprowadzić ten kto napisał/przerabiał plugin. Jeśli chcesz mogę napisać kolejny poradnik dotyczący tłumaczenia pluginów nie posiadających tej opcji

jasne byłbym wzdzieczny jakbyś napisałe :D

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
W dniu 13.07.2019 o 17:40, Vasto_Lorde napisał:

Jeśli chcesz mogę napisać kolejny poradnik dotyczący tłumaczenia pluginów nie posiadających tej opcji

jak z tym poradnikiem? :P 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
W dniu 28.07.2019 o 12:47, Shadow napisał:

jak z tym poradnikiem? 😛

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość

Zapomniałeś wspomnieć o jednej, dość istotnej rzeczy.

Jeśli chcemy przetłumaczyć frazę, która zawiera jakąś zmienną, np 

PrintToChat(client, "Otrzymałeś %i punktów za zabójstwo wirującą piętą w potylicę!", iPunktyPietaszek.IntValue);

to powinno to wyglądać w ten sposób :

 

PrintToChat(client, "%t", "PUNKTY_PIETASZEK", iPunktyPietaszek.IntValue);

a tłumaczenie następująco :

 

"Phrases"
{
	"PUNKTY_PIETASZEK"
	{
		"#format"	"{1:d}"
		"en"		"You received {1} points for assassination by rotating heel in the back of the head"
		"pl"		"Otrzymałeś {1} punktów za zabójstwo wirującą piętą w potylicę!"
	}
}

 

"#format" służy nam do określenia czym jest dana cyfra w tłumaczeniu. Jeśli mamy zmienną zawierającą tekst, użyjemy np {1:s} (najprawdopodobniej od stringa). Jeśli mamy dwie zmienne, to analogicznie. Załóżmy, że pierwsza to int, a druga to string. 

"ASS_KILL"
{
	"#format" "{1:d},{2:s}"
	"pl" "{1} punktów za {2}"
}

int punkty = 10;
char txt[32];
Format(txt, sizeof(txt), "zabójstwo du**ą!");
PrintToChat(client, "%t", "ASS_KILL", punkty, txt);

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.


×
×
  • Dodaj nową pozycję...