Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Russischen (kyrillischen) Text umwandeln (https://www.delphipraxis.net/209553-russischen-kyrillischen-text-umwandeln.html)

MartinK 20. Dez 2021 15:14

Russischen (kyrillischen) Text umwandeln
 
Bitte verzeiht mir meine vermutlich banale Frage, denn die Suchfunktion und etwas googeln haben mir leider nicht wirklich geholfen.

Ich würde die gerne Zeichen eines russischen(Kyrillischen) Text in normalen Text (lateinisch?) umwandeln.
Das kann doch kein Hexenwerk sein......

Also zB.: Сергеев -> Sergeev

Danke und vG
Martin
...der vermutlich den Wald vor lauter Bäumen nicht sieht...

Andreas13 20. Dez 2021 15:24

AW: Russischen (kyrillischen) Text umwandeln
 
Hallo Martin,
https://www.deepl.com/translator schafft es ohne Probleme.
Gruß, Andreas

Uwe Raabe 20. Dez 2021 15:31

AW: Russischen (kyrillischen) Text umwandeln
 
Geht es um die Übersetzung oder lediglich um die Schreibweise? Für Letzteres gäbe es das hier: https://de.wikipedia.org/wiki/Translit
Zitat:

Translit ist eine Methode, um kyrillische Schrift mit lateinischen Buchstaben darzustellen.

MartinK 21. Dez 2021 06:51

AW: Russischen (kyrillischen) Text umwandeln
 
Translit würde mir genügen, da es mir nur um eine "Konvertierung von Usernamen" mit kyrillischem Text geht.

DeepL: ich habe zwar sogar eine Pro-Version welche mir vollen API-Zugriff geben würde. Für diesen Zweck ist mir das aber dann doch etwas too much.

himitsu 21. Dez 2021 13:56

AW: Russischen (kyrillischen) Text umwandeln
 
Wenn es nur um halbwegs "lesbare" Namen geht, dann könntest du dir auch was mit StringReplace, bzw. mit einer kleine Lookuptabelle (Array) basteln, für die paar kyrillischen "Buchstaben".

MartinK 22. Dez 2021 13:43

AW: Russischen (kyrillischen) Text umwandeln
 
Ich hab mir jetzt mal kurz was gebastelt. Sicher nicht perfekt... aber für mich ausreichend.
Danke nochmal für die Tipps!

Delphi-Quellcode:
Function Transcript_Russian2LatinChars(aString:String):String;
Type
  TStringArray = array of String;
var
 R,L: TStringArray;
 I:Integer;
begin
  //Russian Chars
  R:=TStringArray.Create('А','Б','В','Г','Д','Е','Ё','Ж','З','И','І','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ч','Ш','Щ','Ъ','Ы','Ь','Э',        //Capitals
                         'а','б','в','г','д','е','ё','ж','з','и','і','й','к','л','м','н','о','п','р','с','т','у','ф','х','ч','ш','щ','ъ','ы','ь','э');       //Small letters
  //Latin Chars/Strings
  L:=TStringArray.Create('A','B','V','G','D','E','E','Zh','Z','I','I','I','K','L','M','N','O','P','R','S','T','U','F','Kh','Ch','Sh','Shch','ʺ','Y','ʹ','E', //Capitals
                         'a','b','v','g','d','e','e','zh','z','i','i','i','k','l','m','n','o','p','r','s','t','u','f','kh','ch','sh','shch','ʺ','y','ʹ','e'); //Small letters

  for I := 1 to Length(R) do
    begin
      aString := stringreplace(aString, R[i-1], L[i-1], [rfReplaceAll]);
    end;

  Result := aString;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz