Einzelnen Beitrag anzeigen

MP3Freak

Registriert seit: 1. Jul 2008
Ort: irgendwo östlich von München
5 Beiträge
 
#4

AW: Linlocalize 1.4 für Windows

  Alt 7. Aug 2015, 08:12
Version 1.5.2 steht zum Download zur Verfügung.
Neben kleinen Programmverbesserungen gibt es nun endlich auch einen anständigen Installer.
Somit kann es jeder Delphi Anwender ohne weitere SourceForge Kenntnisse verwenden.

Mehr auf
http://winlocalize.sourceforge.net/
http://sourceforge.net/projects/winlocalize/

LinLocalize ließt die Resourcen (Formresourcen, Resourcestrings) aus,
hilft bei der Übersetzung (Google Translation) und gibt diese als Resourcendatei aus.
Die Sprachumschaltung per externer Resourcendatei <Projektname>.<Sprache> (z.B. SampleProject.EN) ist bestandteil von Delphi.
Die Sprachumschaltung erfolgt durch schreiben eines einzigen Registry Schlüssels, es ist sonst kein weiterer Code im Projekt nötig.
Der Registry Schlüssel kann vom Setup eurer Anwendung oder mit dem kleine Beispielcode unten geschrieben werden.

-------------------------------------------------------------------------

LinLocalize for Windows is a translation tool running on Windows for easy localization of your Delphi-applications. Linlocalize extracts all embedded Delphi-resources (resource strings and forms) of a Windows-PE-file (Portable Executable: shared-object-file/dynamic-link-library or executable) and writes the translated texts back to a shared-resource-file or standalone executable. Translate your Delphi-applications within one translation-tool and use the same glossaries for automatic translation. To localize for different languages, you may have to convert hard coded strings in your Delphi-source-code to resourcestrings.

Code:

Sample Code for setting application language:
=============================================

When you set that registry key, Delphi switches language automaticly on startup
if resourcefile <application>.<lang> is available.


unit loc_unit;

interface

function GetAppLanguage:String;
procedure ResetAppLanguage;
procedure SetAppLanguage(sLang:String);

implementation

uses forms, windows, sysutils, registry;

// -------------------------------------------------------------------

const sloc:String='Software\Embarcadero\Locales\';

function GetAppLanguage:String;
begin
  Result:= GetLocaleOverride(application.ExeName)
end;

procedure ResetAppLanguage;
var RegistryEntry: TRegistry;
begin
  RegistryEntry:= TRegistry.Create(KEY_READ);
  try
    RegistryEntry.RootKey:= HKEY_CURRENT_USER;
    RegistryEntry.Access:= KEY_WRITE;
    RegistryEntry.OpenKey(sloc,True);
    RegistryEntry.DeleteValue(application.ExeName);
  finally
   RegistryEntry.CloseKey();
   FreeAndNil(RegistryEntry)
  end;
end;

procedure SetAppLanguage(sLang:String);
var RegistryEntry: TRegistry;
begin
  RegistryEntry:= TRegistry.Create(KEY_READ);
  try
    RegistryEntry.RootKey:= HKEY_CURRENT_USER;
    RegistryEntry.Access:= KEY_WRITE;
    RegistryEntry.OpenKey(sloc,True);
    RegistryEntry.WriteString(application.ExeName, sLang);
  finally
   RegistryEntry.CloseKey();
   FreeAndNil(RegistryEntry)
  end;
end;

// -------------------------------------------------------------------


end.
  Mit Zitat antworten Zitat