Discussion on LoL Language Changer [OpenSource] within the League of Legends Hacks, Bots, Cheats & Exploits forum part of the League of Legends category.
I want to present you the new version of my language changer for League of Legends. With it you can use any language you want on any server you want. Even Korean
Optimized for 4.21!
Download: 32bit: 3.38mb
Code:
Downloadlinks: (to copy or check virustotal by yourself)
http://www.smoothdev.org/tools/lol/languageChanger/download/LoLLanguageChanger.exe
unit MainForm;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Generics.Collections, Vcl.StdCtrls,
Vcl.CheckLst, Vcl.ComCtrls, Vcl.ExtCtrls, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP, ShellApi;
type
TServerSettings = class
private
public
Server : string;
Languages : TStringList;
end;
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
lbl1: TLabel;
lbl2: TLabel;
grp1: TGroupBox;
lstServerList: TListBox;
chklstLanguageList: TCheckListBox;
btn1: TButton;
btn2: TButton;
HeaderControl1: THeaderControl;
lbl3: TLabel;
lbl4: TLabel;
lbl5: TLabel;
lbl6: TLabel;
lblani: TLabel;
tmr1: TTimer;
idhtp1: TIdHTTP;
stat1: TStatusBar;
lbl7: TLabel;
lbl8: TLabel;
lbl9: TLabel;
lbl10: TLabel;
opendialog: TFileOpenDialog;
procedure FormCreate(Sender: TObject);
procedure tmr1Timer(Sender: TObject);
procedure lbl6Click(Sender: TObject);
procedure idhtp1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
procedure idhtp1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Int64);
procedure lstServerListClick(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure chklstLanguageListClick(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure lbl9Click(Sender: TObject);
procedure lbl7Click(Sender: TObject);
private
{ Private-Deklarationen }
FSettings : TObjectList<TServerSettings>;
procedure FSetSettings(value : TObjectList<TServerSettings>);
public
{ Public-Deklarationen }
Dir : string;
FilePath : string;
procedure CheckFilePath;
function ParseFile(Path : string) : TObjectList<TServerSettings>;
function Parse(list : TStringList) : TObjectList<TServerSettings>;
procedure SetLanguages(s : TServerSettings);
procedure SaveAs(path : string);
property settings : TObjectList<TServerSettings> read FSettings write FSetSettings;
end;
const
Version = '2.0';
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
begin
SaveAs(dir + filepath);
ShowMessage('Language settings successfully changed.');
end;
procedure TForm1.btn2Click(Sender: TObject);
var
default : TStringList;
begin
default := TStringList.Create;
default.Add('na,na,en_US,A');
default.Add('br,br,pt_BR,A');
default.Add('tr,tr,tr_TR,A');
default.Add('euw,euw,en_GB|de_DE|es_ES|fr_FR|it_IT,A');
default.Add('eune,eune,en_GB|cs_CZ|el_GR|hu_HU|pl_PL|ro_RO,A');
default.Add('ru,ru,ru_RU,A');
default.Add('la1,la1,es_MX,A');
default.Add('la2,la2,es_MX,A');
default.Add('oc1,oc1,en_AU,A');
settings := Parse(default);
SetLanguages(settings[lstServerList.ItemIndex]);
end;
procedure TForm1.CheckFilePath;
var
SelectedFolder: string;
begin
if not(FileExists(dir + FilePath)) then
begin
opendialog.Options := opendialog.Options + [fdoPickFolders];
if opendialog.Execute then
begin
dir := OpenDialog.FileName + '\\';
CheckFilePath;
end
else
Application.Terminate;
end
else
begin
lbl2.Caption := 'Found';
lbl2.Font.Color := clGreen;
end;
end;
procedure TForm1.chklstLanguageListClick(Sender: TObject);
var
c: Integer;
l : string;
begin
Settings[lstServerList.ItemIndex].Languages.Clear;
for c := 0 to chklstLanguageList.Count - 1 do
begin
if chklstLanguageList.Checked[c] then
begin
case c of
0: l := 'en_US';
1: l := 'de_DE';
2: l := 'fr_FR';
3: l := 'es_ES';
4: l := 'it_IT';
5: l := 'ru_RU';
6: l := 'tr_TR';
7: l := 'ko_KR';
8: l := 'pl_PL';
9: l := 'el_GR';
10: l := 'ro_RO';
11: l := 'cs_CZ';
12: l := 'hu_HU';
13: l := 'pt_BR';
end;
Settings[lstServerList.ItemIndex].Languages.Add(l)
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Dir := 'C:\Riot Games\';
FilePath := 'League of Legends\RADS\projects\lol_patcher\managedfiles\0.0.0.0\regions.txt';
CheckFilePath;
settings := ParseFile(Dir + FilePath);
lstServerList.ItemIndex := 0;
lstServerList.OnClick(self);
end;
procedure TForm1.FSetSettings(value: TObjectList<TServerSettings>);
var
s : TServerSettings;
begin
FSettings := value;
end;
procedure TForm1.idhtp1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Int64);
begin
tmr1.Enabled := true;
end;
procedure TForm1.idhtp1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
tmr1.Enabled := false;
end;
procedure TForm1.lbl6Click(Sender: TObject);
var
cV : string;
cL : string;
r : integer;
ms : TMemoryStream;
begin
cV := idhtp1.Get('http://www.smoothdev.org/tools/lol/languageChanger/currentVersion');
if cv <> Version then
begin
r := MessageDlg('You are not up-to-date!' + #13#10 + #13#10 +
'Your Version: ' + Version + #13#10 +
'Newest Version: ' + cV + #13#10 + #13#10 +
'Do you want to download it?'
,mtWarning, mbOKCancel, 0);
if r = 1 then
begin
cL := idhtp1.Get('http://www.smoothdev.org/tools/lol/languageChanger/currentLink');
ShellExecute(self.WindowHandle,'open',PChar(cL),nil,nil, SW_SHOWNORMAL);
end;
end
else
ShowMessage('You are up-to-date.');
end;
procedure TForm1.lbl7Click(Sender: TObject);
begin
ShellExecute(self.WindowHandle,'open','http://www.smoothdev.org/donate/',nil,nil, SW_SHOWNORMAL);
end;
procedure TForm1.lbl9Click(Sender: TObject);
begin
ShellExecute(self.WindowHandle,'open','http://www.smoothdev.org/tools/',nil,nil, SW_SHOWNORMAL);
end;
procedure TForm1.lstServerListClick(Sender: TObject);
begin
SetLanguages(settings[lstServerList.ItemIndex]);
end;
procedure Split(Delimiter: Char; Str: string; ListOfStrings: TStrings) ;
begin
ListOfStrings.Clear;
ListOfStrings.Delimiter := Delimiter;
ListOfStrings.DelimitedText := Str;
end;
function TForm1.Parse(list: TStringList): TObjectList<TServerSettings>;
var
setting : TServerSettings;
str, str2 : string;
parts, langs: TStringList;
begin
Result := TObjectList<TServerSettings>.Create;
for str in list do
begin
if Length(str) >= 5 then
begin
parts := TStringList.Create;
langs := TStringList.Create;
setting := TServerSettings.Create;
str2 := StringReplace(str, ' ', '',
[rfReplaceAll, rfIgnoreCase]);
Split(',',str2,parts);
Split('|',parts[2],langs);
setting.Server := parts[0];
setting.Languages := langs;
Result.Add(setting);
end;
end;
end;
function TForm1.ParseFile(Path: string): TObjectList<TServerSettings>;
var
list : TStringList;
begin
list := TStringList.Create;
list.LoadFromFile(Path);
Result := Parse(list);
end;
procedure TForm1.SaveAs(path: string);
var
s : TServerSettings;
l : string;
op : TStringList;
str : string;
begin
op := TStringList.Create;
for s in settings do
begin
str := s.Server + ',' + s.Server + ',';
for l in s.Languages do
begin
str := str + l + '|';
end;
Delete(str,Length(str),1);
str := str + ',A';
op.Add(str);
end;
op.SaveToFile(path);
end;
procedure TForm1.SetLanguages(s: TServerSettings);
var
lang : string;
id : integer;
begin
chklstLanguageList.CheckAll(cbUnchecked, true, false);
for lang in s.Languages do
begin
if (lang = 'en_US') or (lang = 'en_AU') or (lang = 'en_GB') then
id := 0
else if lang = 'de_DE' then
id := 1
else if lang = 'fr_FR' then
id := 2
else if (lang = 'es_ES') or (lang = 'es_MX') then
id := 3
else if lang = 'it_IT' then
id := 4
else if lang = 'ru_RU' then
id := 5
else if lang = 'tr_TR' then
id := 6
else if lang = 'ko_KR' then
id := 7
else if lang = 'pl_PL' then
id := 8
else if lang = 'el_GR' then
id := 9
else if lang = 'ro_RO' then
id := 10
else if lang = 'cs_CZ' then
id := 11
else if lang = 'hu_HU' then
id := 12
else if lang = 'pt_BR' then
id := 13;
chklstLanguageList.Checked[id] := true;
end;
end;
procedure TForm1.tmr1Timer(Sender: TObject);
begin
if lblani.Caption = '. . .' then
lblani.Caption := ''
else
if lblani.Caption = '. .' then
lblani.Caption := '. . .'
else
if lblani.Caption = '.' then
lblani.Caption := '. .'
else
if lblani.Caption = '' then
lblani.Caption := '.';
end;
end.
I hope you can use the Lanugage Changer
If you have any problems or questions, just ask.
Donate
This tool is for free!
But we take voluntary donations on this site:
it's simple to change the language, but this is faster than my way ! good work
Yes as you can see in the source its very simple. I just did this program for people who doesnt know how to do it, and yes with this program its faster ^^ Thanks for the feedback
Quote:
Originally Posted by antoan_deleff
Sorry, but can you add Bulgarian?
Is there any official support for bulgarian language in LoL? I cant find it and i can put only languages which are supported by riot games. :/
LoL Language Changer 02/21/2014 - League of Legends - 11 Replies Hallo,
Ich selbst habe auf dem tuerkischen Server LoL gespielt & es war sehr laestig immer wieder manuell die Sprache aendern zu muessen, da der LoL-Client keine andere Sprache als die tuerkische zuließ.
Was kann man da also machen?
Kollege Solution hier aus dem Forum hat sich meiner Idee fuer einen LoL Language Changer angenommen & diese im Handumdrehen umgesetzt, sodass ich euch heute den fertigen LoL Language Changer praesentieren kann.
Tutorial:
Suche nen Language Changer für Black Ops 1 04/10/2013 - Call of Duty - 3 Replies Hejho Epvper's ;)
Ich weiß jetzt nicht ob das hier hin gehört,aber weiß sonst nicht wohin :p
Also ich suche nen Language Changer für Black ops 1,Deutsch oder Englisch ist egal^^
Habe eine seite gefunden,aber die links sind down und die dateien fehlerhaft..
Lg:pimp:
language changer 12/08/2009 - Cabal Private Server - 2 Replies can anyone help me how to change the NPC language on game... i so sick guessing which to click,,,, thankz