Konuyu Oyla:
  • Derecelendirme: 5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Yandex Translate
#11
(10-10-2018, Saat: 17:05)uparlayan Adlı Kullanıcıdan Alıntı: mobTranslate(fParent:TForm;..... yerine mobTranslate(fParent:TComponent;.....

şeklinde bir düzenleme yapılırsa Vcl.Forms veya Fmx.Forms'a gerek kalmaz.

Başta verilen kodlar sanırım büyük bir projenin küçük bir kısmı. 
Yoksa zaten fParent'e hiç ihtiyaç yok o fonksiyonda. fParent yerine nil kullanılabilir. Tabi TXMLDocument'in Owner'ı nil olunca da sıkıntı oluşacaktır ama onun da çözümü var Smile
XmlDoc :  IXMLDocument;
Kullanılır ve FreeAndNil(XmlDoc) silinir.
There's no place like 127.0.0.1
WWW
Cevapla
#12
Bu da benden olsun, ilk kodu birazcık değiştirdim...

unit rtmTranslator_Yandex_;

interface

uses
   System.NetEncoding
 , System.SysUtils
 , System.StrUtils
 , System.Classes
 , System.Net.HttpClientComponent
 , Xml.XMLDoc
 ;

type
 TrtmTranslatorYandex = class(TComponent)
   type               
     TrtmYandexLangs = ( Azerice, Arnavutca, Amharca, Ingilizce, Arapca, Ermenice, Afrikaca, Baskca, Baskurtca
                       , Belarusca, Bengalce, Birmanyaca, Bulgarca, Bosnakca, Galce, Macarca, Vietnamca, Haitice
                       , Galisyaca, Flemenkce, UstMarice, Yunanca, Gurcuce, Gujaratca, Danimarkaca, Ibranice, Eskenazice
                       , Endonezca, Irlandaca, Italyanca, Izlandaca, Ispanyolca, Kazakca, Kannadaca, Katalanca
                       , Kirgizca, Cince, Korece, Xhosaca, Kmerce, Laosca, Latince, Letonca, Litvanca, Luksemburgca
                       , Madagaskarca, Malayaca, Malayalamca, Maltaca, Makedonca, Maorice, Marathice, Marice, Mogolca
                       , Almanca, Nepalce, Norvecce, Pencapca, Papiamentoca, Farsca, Polonca, Portekizce, Romence
                       , Rusca, Cebuanoca, Sirpca, Sinhalaca, Slovakca, Slovence, Svahilice, Sundaca, Tacikce
                       , Taylandca, Tagalogca, Tamilce, Tatarca, Teluguca, Turkce, Udmurtca, Ozbekce, Ukraynaca, Urduca
                       , Fince, Fransizca, Hintce, Hirvatca, Cekce, Isvecce, Iskocca, Estonca, Esperantoca, Cavaca
                       , Japonca
                       ); // https://tech.yandex.com/translate/doc/dg..._languages
     TrtmYandexLangs_Helper = record helper for TrtmYandexLangs
       public
         function toString: String;
         function toTextList: String;
         function toIndex: Integer;
         procedure toLang(aLang: String);
     end;
   private
     FOwner                : TComponent;
     FAPIKey               : String;
     FNetHTTP              : TNetHTTPClient;
     FEncoder              : TURLEncoding;
     FNehir                : TMemoryStream;
     FXmlDOC               : TXMLDocument;
     FCevap                : TStringList;
     FLangSource           : TrtmYandexLangs;
     FLangTarget           : TrtmYandexLangs;
     FText                 : String;
     FTextOut              : String;
     FURL                  : String;
     FResponseCode         : Integer;
     FResponseText         : String;
     FOnBeforeTranslate    : TNotifyEvent;
     FOnAfterTranslate     : TNotifyEvent;
     FOnMaxText            : TNotifyEvent;
     FOnDailyLimit         : TNotifyEvent;
     FOnInvalidKey         : TNotifyEvent;
     FOnNotSupported       : TNotifyEvent;
     FOnNotTranslated      : TNotifyEvent;
     FOnComplete           : TNotifyEvent;
     FOnBlockedKey         : TNotifyEvent;
     FOnInvalidParameter   : TNotifyEvent;
     function GetXMLResult: String;
     procedure SetLangSource(const Value: TrtmYandexLangs);
     procedure SetLangTarget(const Value: TrtmYandexLangs);
     procedure SetText(const Value: String);
     procedure SetAPIKey(const Value: String);
   protected
     procedure TranslateTextOut;
   public
     constructor Create(aOwner: TComponent); override;
     destructor Destroy; override;
     function Translate(const aText: String): String;
   published
     property APIKey             : String          read FAPIKey              write SetAPIKey;
     property LangSource         : TrtmYandexLangs read FLangSource          write SetLangSource;
     property LangTarget         : TrtmYandexLangs read FLangTarget          write SetLangTarget;
     property Text               : String          read FText                write SetText;
     property TextOut            : String          read FTextOut;
     property URL                : String          read FURL;
     property XMLResult          : String          read GetXMLResult;
     property ResponseCode       : Integer         read FResponseCode;
     property ResponseText       : String          read FResponseText;
     property OnBeforeTranslate  : TNotifyEvent    read FOnBeforeTranslate   write FOnBeforeTranslate;
     property OnAfterTranslate   : TNotifyEvent    read FOnAfterTranslate    write FOnAfterTranslate;
     property OnComplete         : TNotifyEvent    read FOnComplete          write FOnComplete;
     property OnInvalidKey       : TNotifyEvent    read FOnInvalidKey        write FOnInvalidKey;
     property OnBlockedKey       : TNotifyEvent    read FOnBlockedKey        write FOnBlockedKey;
     property OnDailyLimit       : TNotifyEvent    read FOnDailyLimit        write FOnDailyLimit;
     property OnMaxText          : TNotifyEvent    read FOnMaxText           write FOnMaxText;
     property OnNotTranslated    : TNotifyEvent    read FOnNotTranslated     write FOnNotTranslated;
     property OnNotSupported     : TNotifyEvent    read FOnNotSupported      write FOnNotSupported;
     property OnInvalidParameter : TNotifyEvent    read FOnInvalidParameter  write FOnInvalidParameter;
 end;

 procedure Register;

implementation

uses
   System.TypInfo      //  TypeInfo
 ;

procedure Register;
begin
 RegisterComponents('Potansif', [TrtmTranslatorYandex]);
end;

{ TrtmTranslatorYandex }

constructor TrtmTranslatorYandex.Create(aOwner: TComponent);
begin
 inherited Create(aOwner);
 FOwner        := aOwner;
 FNetHTTP      := TNetHTTPClient.Create(Self);
 FEncoder      := TURLEncoding.Create;
 FNehir        := TMemoryStream.Create;
 FXmlDOC       := TXMLDocument.Create(Self);
 FCevap        := TStringList.Create;
 FLangSource   := Turkce;
 FLangTarget   := Ingilizce;
 FText         := '';
 FResponseCode := 0; // Başlangıç değeridir.
end;

destructor TrtmTranslatorYandex.Destroy;
begin
 FreeAndNil(FCevap);
 FreeAndNil(FXmlDOC);
 FreeAndNil(FNehir);
 FreeAndNil(FEncoder);
 FreeAndNil(FNetHTTP);
 inherited Destroy;
end;

function TrtmTranslatorYandex.GetXMLResult: String;
begin
 Result := FCevap.Text;
end;

procedure TrtmTranslatorYandex.SetAPIKey(const Value: String);
begin
 FAPIKey := Value;
 TranslateTextOut;
end;

procedure TrtmTranslatorYandex.SetLangSource(const Value: TrtmYandexLangs);
begin
 FLangSource := Value;
 TranslateTextOut;
end;

procedure TrtmTranslatorYandex.SetLangTarget(const Value: TrtmYandexLangs);
begin
 FLangTarget := Value;
 TranslateTextOut;
end;

procedure TrtmTranslatorYandex.SetText(const Value: String);
begin
 FText := Value.Trim;
 TranslateTextOut;
end;

function TrtmTranslatorYandex.Translate(const aText: String): String;
begin
 if Assigned(FOnBeforeTranslate) then FOnBeforeTranslate(Self);

 FURL := 'https://translate.yandex.net';
 if (FLangSource = FLangTarget) then begin
     if (aText.Length >= 10000) then begin
         if Assigned(FOnMaxText) then FOnMaxText(Self);
         if Assigned(FOnAfterTranslate) then FOnAfterTranslate(Self);
         Exit('');
     end else Result := aText;
 end else
 if (FAPIKey.Trim.IsEmpty = False) and (aText.Trim.IsEmpty = False) then begin
     if NOT (csDesigning in Self.ComponentState) then begin
             if (aText.Length >= 10000) then begin
                 if Assigned(FOnMaxText) then FOnMaxText(Self);
                 if Assigned(FOnAfterTranslate) then FOnAfterTranslate(Self);
                 Exit('');
             end;
             FURL := Format( 'https://translate.yandex.net/api/v1.5/tr/translate'
                           + '?key=%0:s'
                           + '&lang=%1:s-%2:s'
                           + '&text=%3:s',
                           [ {0} FAPIKey
                            , {1} FLangSource.toString
                            , {2} FLangTarget.toString
                            , {3} FEncoder.Encode(aText)
                            ]);
             FNehir.Clear;
             FNetHTTP.Get(FURL, FNehir);
             FNehir.Position  := 0;
             FCevap.LoadFromStream(FNehir);
             FXmlDOC.Active   := False;
             FXmlDOC.XML.Text := UTF8ToWideString(FCevap.Text); // 16 bitlik ascii karakterlerini göstermek içindir...
             FXmlDOC.Active   := True;
             FResponseCode    := StrToIntDef(FXMLDoc.DocumentElement.AttributeNodes.FindNode('code').Text, 0);
             FResponseText := '';
             if  (FResponseCode in [0, 200])
             then FResponseText := 'Operation completed successfully'
             else FResponseText := FXMLDoc.DocumentElement.AttributeNodes.FindNode('message').Text;
             Result := IfThen( FXmlDOC.DocumentElement.ChildNodes.Count = 0
                             , FResponseText
                             , FXmlDOC.DocumentElement.ChildNodes['text'].Text
                             );
             case  FResponseCode  of
                   0..
                   200: if Assigned(FOnComplete)         then FOnComplete(Self);
                   401: if Assigned(FOnInvalidKey)       then FOnInvalidKey(Self);
                   402: if Assigned(FOnBlockedKey)       then FOnBlockedKey(Self);
                   404: if Assigned(FOnDailyLimit)       then FOnDailyLimit(Self);
                   413: if Assigned(FOnMaxText)          then FOnMaxText(Self);
                   422: if Assigned(FOnNotTranslated)    then FOnNotTranslated(Self);
                   501: if Assigned(FOnNotSupported)     then FOnNotSupported(Self);
                   502: if Assigned(FOnInvalidParameter) then FOnInvalidParameter(Self);
             end;
     end else begin
         Result := 'Sadece Runtime desteklenir.';
     end;
 end else begin
     Result := '';
 end;

 if Assigned(FOnAfterTranslate) then FOnAfterTranslate(Self);
end;

procedure TrtmTranslatorYandex.TranslateTextOut;
begin
 FTextOut := Translate(FText.Trim);
end;

{ TrtmTranslatorYandex.TrtmYandexLangs_Helper }

function TrtmTranslatorYandex.TrtmYandexLangs_Helper.toIndex: Integer;
begin
 Result := Ord(Self);
end;

procedure TrtmTranslatorYandex.TrtmYandexLangs_Helper.toLang(aLang: String);
 function &in(aAranan: string; aListe: Array of string): Boolean;
 var
   S: String;
 begin
   Result := False;
   for S in aListe do if (S = aAranan) then Exit(True);
 end;
begin
 if &in(aLang, ['az', 'Azerice', 'Azerice', 'Azerbaijan'])               then Self := Azerice        else
 if &in(aLang, ['sq', 'Arnavutça', 'Arnavutca', 'Albanian'])             then Self := Arnavutca      else
 if &in(aLang, ['am', 'Amharca', 'Amharca', 'Amharic'])                  then Self := Amharca        else
 if &in(aLang, ['en', 'İngilizce', 'Ingilizce', 'English'])              then Self := Ingilizce      else
 if &in(aLang, ['ar', 'Arapça', 'Arapca', 'Arabic'])                     then Self := Arapca         else
 if &in(aLang, ['hy', 'Ermenice', 'Ermenice', 'Armenian'])               then Self := Ermenice       else
 if &in(aLang, ['af', 'Afrikaca', 'Afrikaca', 'Afrikaans'])              then Self := Afrikaca       else
 if &in(aLang, ['eu', 'Baskca', 'Baskca', 'Basque'])                     then Self := Baskca         else
 if &in(aLang, ['ba', 'Başkurtca', 'Baskurtca', 'Bashkir'])              then Self := Baskurtca      else
 if &in(aLang, ['be', 'Belarusça', 'Belarusca', 'Belarusian'])           then Self := Belarusca      else
 if &in(aLang, ['bn', 'Bengalce', 'Bengalce', 'Bengali'])                then Self := Bengalce       else
 if &in(aLang, ['my', 'Birmanyaca', 'Birmanyaca', 'Burmese'])            then Self := Birmanyaca     else
 if &in(aLang, ['bg', 'Bulgarca', 'Bulgarca', 'Bulgarian'])              then Self := Bulgarca       else
 if &in(aLang, ['bs', 'Boşnakça', 'Bosnakca', 'Bosnian'])                then Self := Bosnakca       else
 if &in(aLang, ['cy', 'Galce', 'Galce', 'Welsh'])                        then Self := Galce          else
 if &in(aLang, ['hu', 'Macarca', 'Macarca', 'Hungarian'])                then Self := Macarca        else
 if &in(aLang, ['vi', 'Vietnamca', 'Vietnamca', 'Vietnamese'])           then Self := Vietnamca      else
 if &in(aLang, ['ht', 'Haitice', 'Haitice', 'Haitian'])                  then Self := Haitice        else
 if &in(aLang, ['gl', 'Galisyaca', 'Galisyaca', 'Galician'])             then Self := Galisyaca      else
 if &in(aLang, ['nl', 'Flemenkçe', 'Flemenkce', 'Dutch'])                then Self := Flemenkce      else
 if &in(aLang, ['mrj', 'ÜstMarice', 'UstMarice', 'HillMari'])            then Self := UstMarice      else
 if &in(aLang, ['el', 'Yunanca', 'Yunanca', 'Greek'])                    then Self := Yunanca        else
 if &in(aLang, ['ka', 'Gürcüce', 'Gurcuce', 'Georgian'])                 then Self := Gurcuce        else
 if &in(aLang, ['gu', 'Gujaratca', 'Gujaratca', 'Gujarati'])             then Self := Gujaratca      else
 if &in(aLang, ['da', 'Danimarkaca', 'Danimarkaca', 'Danish'])           then Self := Danimarkaca    else
 if &in(aLang, ['he', 'İbranice', 'Ibranice', 'Hebrew'])                 then Self := Ibranice       else
 if &in(aLang, ['yi', 'Eskenazice', 'Eskenazice', 'Yiddish'])            then Self := Eskenazice     else
 if &in(aLang, ['id', 'Endonezca', 'Endonezca', 'Indonesian'])           then Self := Endonezca      else
 if &in(aLang, ['ga', 'İrlandaca', 'Irlandaca', 'Irish'])                then Self := Irlandaca      else
 if &in(aLang, ['it', 'İtalyanca', 'Italyanca', 'Italian'])              then Self := Italyanca      else
 if &in(aLang, ['is', 'İzlandaca', 'Izlandaca', 'Icelandic'])            then Self := Izlandaca      else
 if &in(aLang, ['es', 'İspanyolca', 'Ispanyolca', 'Spanish'])            then Self := Ispanyolca     else
 if &in(aLang, ['kk', 'Kazakca', 'Kazakca', 'Kazakh'])                   then Self := Kazakca        else
 if &in(aLang, ['kn', 'Kannadaca', 'Kannadaca', 'Kannada'])              then Self := Kannadaca      else
 if &in(aLang, ['ca', 'Katalanca', 'Katalanca', 'Catalan'])              then Self := Katalanca      else
 if &in(aLang, ['ky', 'Kırgızca', 'Kirgizca', 'Kyrgyz'])                 then Self := Kirgizca       else
 if &in(aLang, ['zh', 'Çince', 'Cince', 'Chinese'])                      then Self := Cince          else
 if &in(aLang, ['ko', 'Korece', 'Korece', 'Korean'])                     then Self := Korece         else
 if &in(aLang, ['xh', 'Xhosaca', 'Xhosaca', 'Xhosa'])                    then Self := Xhosaca        else
 if &in(aLang, ['km', 'Kmerce', 'Kmerce', 'Khmer'])                      then Self := Kmerce         else
 if &in(aLang, ['lo', 'Laosca', 'Laosca', 'Laotian'])                    then Self := Laosca         else
 if &in(aLang, ['la', 'Latince', 'Latince', 'Latin'])                    then Self := Latince        else
 if &in(aLang, ['lv', 'Letonca', 'Letonca', 'Latvian'])                  then Self := Letonca        else
 if &in(aLang, ['lt', 'Litvanca', 'Litvanca', 'Lithuanian'])             then Self := Litvanca       else
 if &in(aLang, ['lb', 'Lüksemburgca', 'Luksemburgca', 'Luxembourgish'])  then Self := Luksemburgca   else
 if &in(aLang, ['mg', 'Madagaskarca', 'Madagaskarca', 'Malagasy'])       then Self := Madagaskarca   else
 if &in(aLang, ['ms', 'Malayaca', 'Malayaca', 'Malay'])                  then Self := Malayaca       else
 if &in(aLang, ['ml', 'Malayalamca', 'Malayalamca', 'Malayalam'])        then Self := Malayalamca    else
 if &in(aLang, ['mt', 'Maltaca', 'Maltaca', 'Maltese'])                  then Self := Maltaca        else
 if &in(aLang, ['mk', 'Makedonca', 'Makedonca', 'Macedonian'])           then Self := Makedonca      else
 if &in(aLang, ['mi', 'Maorice', 'Maorice', 'Maori'])                    then Self := Maorice        else
 if &in(aLang, ['mr', 'Marathice', 'Marathice', 'Marathi'])              then Self := Marathice      else
 if &in(aLang, ['mhr', 'Marice', 'Marice', 'Mari'])                      then Self := Marice         else
 if &in(aLang, ['mn', 'Moğolca', 'Mogolca', 'Mongolian'])                then Self := Mogolca        else
 if &in(aLang, ['de', 'Almanca', 'Almanca', 'German'])                   then Self := Almanca        else
 if &in(aLang, ['ne', 'Nepalce', 'Nepalce', 'Nepali'])                   then Self := Nepalce        else
 if &in(aLang, ['no', 'Norveççe', 'Norvecce', 'Norwegian'])              then Self := Norvecce       else
 if &in(aLang, ['pa', 'Pencapca', 'Pencapca', 'Punjabi'])                then Self := Pencapca       else
 if &in(aLang, ['pap', 'Papiamentoca', 'Papiamentoca', 'Papiamento'])    then Self := Papiamentoca   else
 if &in(aLang, ['fa', 'Farsça', 'Farsca', 'Persian'])                    then Self := Farsca         else
 if &in(aLang, ['pl', 'Polonca', 'Polonca', 'Polish'])                   then Self := Polonca        else
 if &in(aLang, ['pt', 'Portekizce', 'Portekizce', 'Portuguese'])         then Self := Portekizce     else
 if &in(aLang, ['ro', 'Romence', 'Romence', 'Romanian'])                 then Self := Romence        else
 if &in(aLang, ['ru', 'Rusça', 'Rusca', 'Russian'])                      then Self := Rusca          else
 if &in(aLang, ['ceb', 'Cebuanoca', 'Cebuanoca', 'Cebuano'])             then Self := Cebuanoca      else
 if &in(aLang, ['sr', 'Sırpça', 'Sirpca', 'Serbian'])                    then Self := Sirpca         else
 if &in(aLang, ['si', 'Sinhalaca', 'Sinhalaca', 'Sinhala'])              then Self := Sinhalaca      else
 if &in(aLang, ['sk', 'Slovakça', 'Slovakca', 'Slovakian'])              then Self := Slovakca       else
 if &in(aLang, ['sl', 'Slovence', 'Slovence', 'Slovenian'])              then Self := Slovence       else
 if &in(aLang, ['sw', 'Svahilice', 'Svahilice', 'Swahili'])              then Self := Svahilice      else
 if &in(aLang, ['su', 'Sundaca', 'Sundaca', 'Sundanese'])                then Self := Sundaca        else
 if &in(aLang, ['tg', 'Tacikçe', 'Tacikce', 'Tajik'])                    then Self := Tacikce        else
 if &in(aLang, ['th', 'Taylandca', 'Taylandca', 'Thai'])                 then Self := Taylandca      else
 if &in(aLang, ['tl', 'Tagalogca', 'Tagalogca', 'Tagalog'])              then Self := Tagalogca      else
 if &in(aLang, ['ta', 'Tamilce', 'Tamilce', 'Tamil'])                    then Self := Tamilce        else
 if &in(aLang, ['tt', 'Tatarca', 'Tatarca', 'Tatar'])                    then Self := Tatarca        else
 if &in(aLang, ['te', 'Teluguca', 'Teluguca', 'Telugu'])                 then Self := Teluguca       else
 if &in(aLang, ['tr', 'Türkçe', 'Turkce', 'Turkish'])                    then Self := Turkce         else
 if &in(aLang, ['udm', 'Udmurtça', 'Udmurtca', 'Udmurt'])                then Self := Udmurtca       else
 if &in(aLang, ['uz', 'Özbekçe', 'Ozbekce', 'Uzbek'])                    then Self := Ozbekce        else
 if &in(aLang, ['uk', 'Ukraynaca', 'Ukraynaca', 'Ukrainian'])            then Self := Ukraynaca      else
 if &in(aLang, ['ur', 'Urduca', 'Urduca', 'Urdu'])                       then Self := Urduca         else
 if &in(aLang, ['fi', 'Fince', 'Fince', 'Finnish'])                      then Self := Fince          else
 if &in(aLang, ['fr', 'Fransızca', 'Fransizca', 'French'])               then Self := Fransizca      else
 if &in(aLang, ['hi', 'Hintçe', 'Hintce', 'Hindi'])                      then Self := Hintce         else
 if &in(aLang, ['hr', 'Hırvatca', 'Hirvatca', 'Croatian'])               then Self := Hirvatca       else
 if &in(aLang, ['cs', 'Çekçe', 'Cekce', 'Czech'])                        then Self := Cekce          else
 if &in(aLang, ['sv', 'İsveççe', 'Isvecce', 'Swedish'])                  then Self := Isvecce        else
 if &in(aLang, ['gd', 'İskoçca', 'Iskocca', 'Scottish'])                 then Self := Iskocca        else
 if &in(aLang, ['et', 'Estonca', 'Estonca', 'Estonian'])                 then Self := Estonca        else
 if &in(aLang, ['eo', 'Esperantoca', 'Esperantoca', 'Esperanto'])        then Self := Esperantoca    else
 if &in(aLang, ['jv', 'Cavaca', 'Cavaca', 'Javanese'])                   then Self := Cavaca         else
 if &in(aLang, ['ja', 'Japonca', 'Japonca', 'Japanese'])                 then Self := Japonca        else
 begin
   { Standart else sonu }
   Self := Self;
 end;
end;

function TrtmTranslatorYandex.TrtmYandexLangs_Helper.toString: String;
begin
 case  Self  of
       Azerice              : Result := 'az';
       Arnavutca            : Result := 'sq';
       Amharca              : Result := 'am';
       Ingilizce            : Result := 'en';
       Arapca               : Result := 'ar';
       Ermenice             : Result := 'hy';
       Afrikaca             : Result := 'af';
       Baskca               : Result := 'eu';
       Baskurtca            : Result := 'ba';
       Belarusca            : Result := 'be';
       Bengalce             : Result := 'bn';
       Birmanyaca           : Result := 'my';
       Bulgarca             : Result := 'bg';
       Bosnakca             : Result := 'bs';
       Galce                : Result := 'cy';
       Macarca              : Result := 'hu';
       Vietnamca            : Result := 'vi';
       Haitice              : Result := 'ht';
       Galisyaca            : Result := 'gl';
       Flemenkce            : Result := 'nl';
       UstMarice            : Result := 'mrj';
       Yunanca              : Result := 'el';
       Gurcuce              : Result := 'ka';
       Gujaratca            : Result := 'gu';
       Danimarkaca          : Result := 'da';
       Ibranice             : Result := 'he';
       Eskenazice           : Result := 'yi';
       Endonezca            : Result := 'id';
       Irlandaca            : Result := 'ga';
       Italyanca            : Result := 'it';
       Izlandaca            : Result := 'is';
       Ispanyolca           : Result := 'es';
       Kazakca              : Result := 'kk';
       Kannadaca            : Result := 'kn';
       Katalanca            : Result := 'ca';
       Kirgizca             : Result := 'ky';
       Cince                : Result := 'zh';
       Korece               : Result := 'ko';
       Xhosaca              : Result := 'xh';
       Kmerce               : Result := 'km';
       Laosca               : Result := 'lo';
       Latince              : Result := 'la';
       Letonca              : Result := 'lv';
       Litvanca             : Result := 'lt';
       Luksemburgca         : Result := 'lb';
       Madagaskarca         : Result := 'mg';
       Malayaca             : Result := 'ms';
       Malayalamca          : Result := 'ml';
       Maltaca              : Result := 'mt';
       Makedonca            : Result := 'mk';
       Maorice              : Result := 'mi';
       Marathice            : Result := 'mr';
       Marice               : Result := 'mhr';
       Mogolca              : Result := 'mn';
       Almanca              : Result := 'de';
       Nepalce              : Result := 'ne';
       Norvecce             : Result := 'no';
       Pencapca             : Result := 'pa';
       Papiamentoca         : Result := 'pap';
       Farsca               : Result := 'fa';
       Polonca              : Result := 'pl';
       Portekizce           : Result := 'pt';
       Romence              : Result := 'ro';
       Rusca                : Result := 'ru';
       Cebuanoca            : Result := 'ceb';
       Sirpca               : Result := 'sr';
       Sinhalaca            : Result := 'si';
       Slovakca             : Result := 'sk';
       Slovence             : Result := 'sl';
       Svahilice            : Result := 'sw';
       Sundaca              : Result := 'su';
       Tacikce              : Result := 'tg';
       Taylandca            : Result := 'th';
       Tagalogca            : Result := 'tl';
       Tamilce              : Result := 'ta';
       Tatarca              : Result := 'tt';
       Teluguca             : Result := 'te';
       Turkce               : Result := 'tr';
       Udmurtca             : Result := 'udm';
       Ozbekce              : Result := 'uz';
       Ukraynaca            : Result := 'uk';
       Urduca               : Result := 'ur';
       Fince                : Result := 'fi';
       Fransizca            : Result := 'fr';
       Hintce               : Result := 'hi';
       Hirvatca             : Result := 'hr';
       Cekce                : Result := 'cs';
       Isvecce              : Result := 'sv';
       Iskocca              : Result := 'gd';
       Estonca              : Result := 'et';
       Esperantoca          : Result := 'eo';
       Cavaca               : Result := 'jv';
       Japonca              : Result := 'ja';
 end;
end;

function TrtmTranslatorYandex.TrtmYandexLangs_Helper.toTextList: String;
var
 Eleman: TrtmTranslatorYandex.TrtmYandexLangs;
begin
 for Eleman := Low (TrtmTranslatorYandex.TrtmYandexLangs) 
            to High(TrtmTranslatorYandex.TrtmYandexLangs) 
  do Result := Result
             + GetEnumName( TypeInfo(TrtmTranslatorYandex.TrtmYandexLangs), Ord(Eleman) ) 
             + #13#10
             ;
end;

end.
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#13
Bende bir yerlerde böyle birşey yazmıştım Smile
http://www.delphican.com/masaustu-ceviri...kodlu.html
WWW
Cevapla
#14
(10-10-2018, Saat: 17:59)uparlayan Adlı Kullanıcıdan Alıntı: Bu da benden olsun, ilk kodu birazcık değiştirdim...

unit rtmTranslator_Yandex_;

interface

uses
 System.NetEncoding, System.SysUtils, System.Classes, System.Net.HttpClientComponent, Xml.XMLDoc, System.StrUtils;

type
 TrtmTranslatorYandex = class(TComponent)
   type
     TrtmYandexLangs = ( Afrikanca, Almanca, Amharca, Arapca, Arnavutca, Azerice, Baskca, Baskurtca, BatiMarice
                       , Belarusca, Bengalce, Birmanca, Bosnakca, Bulgarca, Cavaca, Cekce, Cince, Danca, Elfce
                       , Endonezce, Ermenice, Esperanto, Estonca, Farsca, Felemenkce, Fince, Fransizca, Galce
                       , Galicyaca, Gucaratca, Gurcuce, Haitice, Hirvatca, Hintce, Ibranice, Ingilizce, Irlandaca
                       , Keltce, Ispanyolca, Isvecce, Italyanca, Izlandaca, Japonca, Kannadaca, Katalanca, Kazakca
                       , Khmerce, Kirgizca, Korece, Laoca, Latince, Lehce, Letonca, Litvanca, Luksemburgca, Macarca
                       , Makedonca, Malayalamca, Malayca, Malgasca, Maltaca, Maorice, Marathi, Marice, Mogolca, Nepali
                       , Norvecce, Özbekce, Papiamento, Pencapca, Portekizce, Romence, Rusca, Sabuanca, Seylanca
                       , Sirpca, Slovakca, Slovence, Sundaca, Svahili, Tacikce, Tagalogca, Tamilce, Tatarca, Taylandca
                       , Teluguca, Turkce, Udmurtca, Ukraynaca, Urduca, Vietnamca, Xhosaca, Yidis, Yunanca
                       );
     TrtmYandexKangsHelper = record helper for TrtmYandexLangs
       public
         function toString: String;
         procedure toLang(aLang: String);
     end;
   private
     FOwner                : TComponent;
     FAPIKey               : String;
     FNetHTTP              : TNetHTTPClient;
     FEncoder              : TURLEncoding;
     FNehir                : TMemoryStream;
     FXmlDOC               : TXMLDocument;
     FCevap                : TStringList;
     FLangSource           : TrtmYandexLangs;
     FLangTarget           : TrtmYandexLangs;
     FText                 : String;
     FTextOut              : String;
     FURL                  : String;
     FResponseCode         : Integer;
     FResponseText         : String;
     FOnBeforeTranslate    : TNotifyEvent;
     FOnAfterTranslate     : TNotifyEvent;
     FOnMaxText            : TNotifyEvent;
     FOnDailyLimit         : TNotifyEvent;
     FOnInvalidKey         : TNotifyEvent;
     FOnNotSupported       : TNotifyEvent;
     FOnNotTranslated      : TNotifyEvent;
     FOnComplete           : TNotifyEvent;
     FOnBlockedKey         : TNotifyEvent;
     FOnInvalidParameter   : TNotifyEvent;
     function GetXMLResult: String;
     procedure SetLangSource(const Value: TrtmYandexLangs);
     procedure SetLangTarget(const Value: TrtmYandexLangs);
     procedure SetText(const Value: String);
     procedure SetAPIKey(const Value: String);
   protected
     procedure TranslateTextOut;
   public
     constructor Create(aOwner: TComponent); override;
     destructor Destroy; override;
     function Translate(const aText: String): String;
   published
     property APIKey             : String          read FAPIKey              write SetAPIKey;
     property LangSource         : TrtmYandexLangs read FLangSource          write SetLangSource;
     property LangTarget         : TrtmYandexLangs read FLangTarget          write SetLangTarget;
     property Text               : String          read FText                write SetText;
     property TextOut            : String          read FTextOut;
     property URL                : String          read FURL;
     property XMLResult          : String          read GetXMLResult;
     property ResponseCode       : Integer         read FResponseCode;
     property ResponseText       : String          read FResponseText;
     property OnBeforeTranslate  : TNotifyEvent    read FOnBeforeTranslate   write FOnBeforeTranslate;
     property OnAfterTranslate   : TNotifyEvent    read FOnAfterTranslate    write FOnAfterTranslate;
     property OnComplete         : TNotifyEvent    read FOnComplete          write FOnComplete;
     property OnInvalidKey       : TNotifyEvent    read FOnInvalidKey        write FOnInvalidKey;
     property OnBlockedKey       : TNotifyEvent    read FOnBlockedKey        write FOnBlockedKey;
     property OnDailyLimit       : TNotifyEvent    read FOnDailyLimit        write FOnDailyLimit;
     property OnMaxText          : TNotifyEvent    read FOnMaxText           write FOnMaxText;
     property OnNotTranslated    : TNotifyEvent    read FOnNotTranslated     write FOnNotTranslated;
     property OnNotSupported     : TNotifyEvent    read FOnNotSupported      write FOnNotSupported;
     property OnInvalidParameter : TNotifyEvent    read FOnInvalidParameter  write FOnInvalidParameter;
 end;

 procedure Register;

implementation

procedure Register;
begin
 RegisterComponents('Potansif', [TrtmTranslatorYandex]);
end;

{ TrtmTranslatorYandex }

constructor TrtmTranslatorYandex.Create(aOwner: TComponent);
begin
 inherited Create(aOwner);
 FOwner        := aOwner;
 FNetHTTP      := TNetHTTPClient.Create(Self);
 FEncoder      := TURLEncoding.Create;
 FNehir        := TMemoryStream.Create;
 FXmlDOC       := TXMLDocument.Create(Self);
 FCevap        := TStringList.Create;
 FLangSource   := Turkce;
 FLangTarget   := Ingilizce;
 FText         := '';
 FResponseCode := 0; // Başlangıç değeridir.
end;

destructor TrtmTranslatorYandex.Destroy;
begin
 FreeAndNil(FCevap);
 FreeAndNil(FXmlDOC);
 FreeAndNil(FNehir);
 FreeAndNil(FEncoder);
 FreeAndNil(FNetHTTP);
 inherited Destroy;
end;

function TrtmTranslatorYandex.GetXMLResult: String;
begin
 Result := FCevap.Text;
end;

procedure TrtmTranslatorYandex.SetAPIKey(const Value: String);
begin
 FAPIKey := Value;
 TranslateTextOut;
end;

procedure TrtmTranslatorYandex.SetLangSource(const Value: TrtmYandexLangs);
begin
 FLangSource := Value;
 TranslateTextOut;
end;

procedure TrtmTranslatorYandex.SetLangTarget(const Value: TrtmYandexLangs);
begin
 FLangTarget := Value;
 TranslateTextOut;
end;

procedure TrtmTranslatorYandex.SetText(const Value: String);
begin
 FText := Value.Trim;
 TranslateTextOut;
end;

function TrtmTranslatorYandex.Translate(const aText: String): String;
begin
 if Assigned(FOnBeforeTranslate) then FOnBeforeTranslate(Self);

 FURL := 'https://translate.yandex.net';
 if (FLangSource = FLangTarget) then begin
     Result := aText;
 end else
 if (FAPIKey.Trim.IsEmpty = False) and (aText.Trim.IsEmpty = False) then begin
     if NOT (csDesigning in Self.ComponentState) then begin
             FURL := Format( 'https://translate.yandex.net/api/v1.5/tr/translate'
                           + '?key=%0:s'
                           + '&lang=%1:s-%2:s'
                           + '&text=%3:s',
                           [ {0} FAPIKey
                            , {1} FLangSource.toString
                            , {2} FLangTarget.toString
                            , {3} FEncoder.Encode(aText)
                            ]);
             FNehir.Clear;
             FNetHTTP.Get(FURL, FNehir);
             FNehir.Position  := 0;
             FCevap.LoadFromStream(FNehir);
             FXmlDOC.Active   := False;
             FXmlDOC.XML.Text := UTF8ToWideString(FCevap.Text); // 16 bitlik ascii karakterlerini göstermek içindir...
             FXmlDOC.Active   := True;
             FResponseCode    := StrToIntDef(FXMLDoc.DocumentElement.AttributeNodes.FindNode('code').Text, 0);
             FResponseText := '';
             case  FResponseCode  of //  https://tech.yandex.com/translate/doc/dg...age/#codes
                   0..
                   200: FResponseText := 'Operation completed successfully';
                   401: FResponseText := 'Invalid API key';
                   402: FResponseText := 'Blocked API key';
                   404: FResponseText := 'Exceeded the daily limit on the amount of translated text';
                   413: FResponseText := 'Exceeded the maximum text size';
                   422: FResponseText := 'The text cannot be translated';
                   501: FResponseText := 'The specified translation direction is not supported';
                   502: FResponseText := 'Invalid parameter';
             end;
             Result := IfThen( FXmlDOC.DocumentElement.ChildNodes.Count = 0
                             , FResponseText
                             , FXmlDOC.DocumentElement.ChildNodes['text'].Text
                             );
             case  FResponseCode  of
                   0..
                   200: if Assigned(FOnComplete)         then FOnComplete(Self);
                   401: if Assigned(FOnInvalidKey)       then FOnInvalidKey(Self);
                   402: if Assigned(FOnBlockedKey)       then FOnBlockedKey(Self);
                   404: if Assigned(FOnDailyLimit)       then FOnDailyLimit(Self);
                   413: if Assigned(FOnMaxText)          then FOnMaxText(Self);
                   422: if Assigned(FOnNotTranslated)    then FOnNotTranslated(Self);
                   501: if Assigned(FOnNotSupported)     then FOnNotSupported(Self);
                   502: if Assigned(FOnInvalidParameter) then FOnInvalidParameter(Self);
             end;
     end else begin
         Result := 'Sadece Runtime desteklenir.';
     end;
 end else begin
     Result := '';
 end;

 if Assigned(FOnAfterTranslate) then FOnAfterTranslate(Self);
end;

procedure TrtmTranslatorYandex.TranslateTextOut;
begin
 FTextOut := Translate(FText.Trim);
end;

{ TrtmTranslatorYandex.TrtmYandexKangsHelper }

procedure TrtmTranslatorYandex.TrtmYandexKangsHelper.toLang(aLang: String);
 function &in(aAranan: string; aListe: Array of string): Boolean;
 var
   S: String;
 begin
   Result := False;
   for S in aListe do if (S = aAranan) then Exit(True);
 end;
begin
 if &in(aLang, ['af', 'Afrikanca', 'Afrikanca'])       then Self := Afrikanca    else
 if &in(aLang, ['de', 'Almanca', 'Almanca'])           then Self := Almanca      else
 if &in(aLang, ['am', 'Amharca', 'Amharca'])           then Self := Amharca      else
 if &in(aLang, ['ar', 'Arapça', 'Arapca'])             then Self := Arapca       else
 if &in(aLang, ['sq', 'Arnavutça', 'Arnavutca'])       then Self := Arnavutca    else
 if &in(aLang, ['az', 'Azerice', 'Azerice'])           then Self := Azerice      else
 if &in(aLang, ['eu', 'Baskça', 'Baskca'])             then Self := Baskca       else
 if &in(aLang, ['ba', 'Başkurtça', 'Baskurtca'])       then Self := Baskurtca    else
 if &in(aLang, ['mrj', 'BatiMarice', 'BatiMarice'])    then Self := BatiMarice   else
 if &in(aLang, ['be', 'Belarusça', 'Belarusca'])       then Self := Belarusca    else
 if &in(aLang, ['bn', 'Bengalce', 'Bengalce'])         then Self := Bengalce     else
 if &in(aLang, ['my', 'Birmanca', 'Birmanca'])         then Self := Birmanca     else
 if &in(aLang, ['bs', 'Boşnakça', 'Bosnakca'])         then Self := Bosnakca     else
 if &in(aLang, ['bg', 'Bulgarca', 'Bulgarca'])         then Self := Bulgarca     else
 if &in(aLang, ['jv', 'Cavaca', 'Cavaca'])             then Self := Cavaca       else
 if &in(aLang, ['cs', 'Çekçe', 'Cekce'])               then Self := Cekce        else
 if &in(aLang, ['zh', 'Çince', 'Cince'])               then Self := Cince        else
 if &in(aLang, ['da', 'Danca', 'Danca'])               then Self := Danca        else
 if &in(aLang, ['sjn', 'Elfçe', 'Elfce'])              then Self := Elfce        else
 if &in(aLang, ['id', 'Endonezce', 'Endonezce'])       then Self := Endonezce    else
 if &in(aLang, ['hy', 'Ermenice', 'Ermenice'])         then Self := Ermenice     else
 if &in(aLang, ['eo', 'Esperanto', 'Esperanto'])       then Self := Esperanto    else
 if &in(aLang, ['et', 'Estonca', 'Estonca'])           then Self := Estonca      else
 if &in(aLang, ['fa', 'Farsça', 'Farsca'])             then Self := Farsca       else
 if &in(aLang, ['nl', 'Felemenkçe', 'Felemenkce'])     then Self := Felemenkce   else
 if &in(aLang, ['fi', 'Fince', 'Fince'])               then Self := Fince        else
 if &in(aLang, ['fr', 'Fransızca', 'Fransizca'])       then Self := Fransizca    else
 if &in(aLang, ['cy', 'Galce', 'Galce'])               then Self := Galce        else
 if &in(aLang, ['gl', 'Galiçyaca', 'Galicyaca'])       then Self := Galicyaca    else
 if &in(aLang, ['gu', 'Gucaratça', 'Gucaratca'])       then Self := Gucaratca    else
 if &in(aLang, ['ka', 'Gürcüce', 'Gurcuce'])           then Self := Gurcuce      else
 if &in(aLang, ['ht', 'Haitice', 'Haitice'])           then Self := Haitice      else
 if &in(aLang, ['hr', 'Hırvatça', 'Hirvatca'])         then Self := Hirvatca     else
 if &in(aLang, ['hi', 'Hintçe', 'Hintce'])             then Self := Hintce       else
 if &in(aLang, ['he', 'İbranice', 'Ibranice'])         then Self := Ibranice     else
 if &in(aLang, ['en', 'İngilizce', 'Ingilizce'])       then Self := Ingilizce    else
 if &in(aLang, ['ga', 'İrlandaca', 'Irlandaca'])       then Self := Irlandaca    else
 if &in(aLang, ['gd', 'Keltçe', 'Keltce'])             then Self := Keltce       else
 if &in(aLang, ['es', 'İspanyolca', 'Ispanyolca'])     then Self := Ispanyolca   else
 if &in(aLang, ['sv', 'İsveçce', 'Isvecce'])           then Self := Isvecce      else
 if &in(aLang, ['it', 'İtalyanca', 'Italyanca'])       then Self := Italyanca    else
 if &in(aLang, ['is', 'İzlandaca', 'Izlandaca'])       then Self := Izlandaca    else
 if &in(aLang, ['ja', 'Japonca', 'Japonca'])           then Self := Japonca      else
 if &in(aLang, ['kn', 'Kannadaca', 'Kannadaca'])       then Self := Kannadaca    else
 if &in(aLang, ['ca', 'Katalanca', 'Katalanca'])       then Self := Katalanca    else
 if &in(aLang, ['kk', 'Kazakça', 'Kazakca'])           then Self := Kazakca      else
 if &in(aLang, ['km', 'Khmerce', 'Khmerce'])           then Self := Khmerce      else
 if &in(aLang, ['ky', 'Kırgızca', 'Kirgizca'])         then Self := Kirgizca     else
 if &in(aLang, ['ko', 'Korece', 'Korece'])             then Self := Korece       else
 if &in(aLang, ['lo', 'Laoca', 'Laoca'])               then Self := Laoca        else
 if &in(aLang, ['la', 'Latince', 'Latince'])           then Self := Latince      else
 if &in(aLang, ['pl', 'Lehçe', 'Lehce'])               then Self := Lehce        else
 if &in(aLang, ['lv', 'Letonca', 'Letonca'])           then Self := Letonca      else
 if &in(aLang, ['lt', 'Litvanca', 'Litvanca'])         then Self := Litvanca     else
 if &in(aLang, ['lb', 'Lüksemburgca', 'Luksemburgca']) then Self := Luksemburgca else
 if &in(aLang, ['hu', 'Macarca', 'Macarca'])           then Self := Macarca      else
 if &in(aLang, ['mk', 'Makedonca', 'Makedonca'])       then Self := Makedonca    else
 if &in(aLang, ['ml', 'Malayalamca', 'Malayalamca'])   then Self := Malayalamca  else
 if &in(aLang, ['ms', 'Malayca', 'Malayca'])           then Self := Malayca      else
 if &in(aLang, ['mg', 'Malgaşça', 'Malgasca'])         then Self := Malgasca     else
 if &in(aLang, ['mt', 'Maltaca', 'Maltaca'])           then Self := Maltaca      else
 if &in(aLang, ['mi', 'Maorice', 'Maorice'])           then Self := Maorice      else
 if &in(aLang, ['mr', 'Marathi', 'Marathi'])           then Self := Marathi      else
 if &in(aLang, ['mhr', 'Marice', 'Marice'])            then Self := Marice       else
 if &in(aLang, ['mn', 'Moğolca', 'Mogolca'])           then Self := Mogolca      else
 if &in(aLang, ['ne', 'Nepali', 'Nepali'])             then Self := Nepali       else
 if &in(aLang, ['no', 'Norveççe', 'Norvecce'])         then Self := Norvecce     else
 if &in(aLang, ['uz', 'Özbekçe', 'Özbekce'])           then Self := Özbekce      else
 if &in(aLang, ['pap', 'Papiamento', 'Papiamento'])    then Self := Papiamento   else
 if &in(aLang, ['pa', 'Pencapça', 'Pencapca'])         then Self := Pencapca     else
 if &in(aLang, ['pt', 'Portekizce', 'Portekizce'])     then Self := Portekizce   else
 if &in(aLang, ['ro', 'Romence', 'Romence'])           then Self := Romence      else
 if &in(aLang, ['ru', 'Rusça', 'Rusca'])               then Self := Rusca        else
 if &in(aLang, ['ceb', 'Sabuanca', 'Sabuanca'])        then Self := Sabuanca     else
 if &in(aLang, ['si', 'Seylanca', 'Seylanca'])         then Self := Seylanca     else
 if &in(aLang, ['sr', 'Sırpça', 'Sirpca'])             then Self := Sirpca       else
 if &in(aLang, ['sk', 'Slovakça', 'Slovakca'])         then Self := Slovakca     else
 if &in(aLang, ['sl', 'Slovence', 'Slovence'])         then Self := Slovence     else
 if &in(aLang, ['su', 'Sundaca', 'Sundaca'])           then Self := Sundaca      else
 if &in(aLang, ['sw', 'Svahili', 'Svahili'])           then Self := Svahili      else
 if &in(aLang, ['tg', 'Tacikçe', 'Tacikce'])           then Self := Tacikce      else
 if &in(aLang, ['tl', 'Tagalogca', 'Tagalogca'])       then Self := Tagalogca    else
 if &in(aLang, ['ta', 'Tamilce', 'Tamilce'])           then Self := Tamilce      else
 if &in(aLang, ['tt', 'Tatarca', 'Tatarca'])           then Self := Tatarca      else
 if &in(aLang, ['th', 'Taylandça', 'Taylandca'])       then Self := Taylandca    else
 if &in(aLang, ['te', 'Teluguca', 'Teluguca'])         then Self := Teluguca     else
 if &in(aLang, ['tr', 'Türkçe', 'Turkce'])             then Self := Turkce       else
 if &in(aLang, ['udm', 'Udmurtça', 'Udmurtca'])        then Self := Udmurtca     else
 if &in(aLang, ['uk', 'Ukraynaca', 'Ukraynaca'])       then Self := Ukraynaca    else
 if &in(aLang, ['ur', 'Urduca', 'Urduca'])             then Self := Urduca       else
 if &in(aLang, ['vi', 'Vietnamca', 'Vietnamca'])       then Self := Vietnamca    else
 if &in(aLang, ['xh', 'Xhosaca', 'Xhosaca'])           then Self := Xhosaca      else
 if &in(aLang, ['yi', 'Yidiş', 'Yidis'])               then Self := Yidis        else
 if &in(aLang, ['el', 'Yunanca', 'Yunanca'])           then Self := Yunanca      else
 begin
   { Standart else sonu }
   Self := Self;
 end;
end;

function TrtmTranslatorYandex.TrtmYandexKangsHelper.toString: String;
begin
 case  Self  of
       Afrikanca         : Result := 'af';
       Almanca           : Result := 'de';
       Amharca           : Result := 'am';
       Arapca            : Result := 'ar';
       Arnavutca         : Result := 'sq';
       Azerice           : Result := 'az';
       Baskca            : Result := 'eu';
       Baskurtca         : Result := 'ba';
       BatiMarice        : Result := 'mrj';
       Belarusca         : Result := 'be';
       Bengalce          : Result := 'bn';
       Birmanca          : Result := 'my';
       Bosnakca          : Result := 'bs';
       Bulgarca          : Result := 'bg';
       Cavaca            : Result := 'jv';
       Cekce             : Result := 'cs';
       Cince             : Result := 'zh';
       Danca             : Result := 'da';
       Elfce             : Result := 'sjn';
       Endonezce         : Result := 'id';
       Ermenice          : Result := 'hy';
       Esperanto         : Result := 'eo';
       Estonca           : Result := 'et';
       Farsca            : Result := 'fa';
       Felemenkce        : Result := 'nl';
       Fince             : Result := 'fi';
       Fransizca         : Result := 'fr';
       Galce             : Result := 'cy';
       Galicyaca         : Result := 'gl';
       Gucaratca         : Result := 'gu';
       Gurcuce           : Result := 'ka';
       Haitice           : Result := 'ht';
       Hirvatca          : Result := 'hr';
       Hintce            : Result := 'hi';
       Ibranice          : Result := 'he';
       Ingilizce         : Result := 'en';
       Irlandaca         : Result := 'ga';
       Keltce            : Result := 'gd';
       Ispanyolca        : Result := 'es';
       Isvecce           : Result := 'sv';
       Italyanca         : Result := 'it';
       Izlandaca         : Result := 'is';
       Japonca           : Result := 'ja';
       Kannadaca         : Result := 'kn';
       Katalanca         : Result := 'ca';
       Kazakca           : Result := 'kk';
       Khmerce           : Result := 'km';
       Kirgizca          : Result := 'ky';
       Korece            : Result := 'ko';
       Laoca             : Result := 'lo';
       Latince           : Result := 'la';
       Lehce             : Result := 'pl';
       Letonca           : Result := 'lv';
       Litvanca          : Result := 'lt';
       Luksemburgca      : Result := 'lb';
       Macarca           : Result := 'hu';
       Makedonca         : Result := 'mk';
       Malayalamca       : Result := 'ml';
       Malayca           : Result := 'ms';
       Malgasca          : Result := 'mg';
       Maltaca           : Result := 'mt';
       Maorice           : Result := 'mi';
       Marathi           : Result := 'mr';
       Marice            : Result := 'mhr';
       Mogolca           : Result := 'mn';
       Nepali            : Result := 'ne';
       Norvecce          : Result := 'no';
       Özbekce           : Result := 'uz';
       Papiamento        : Result := 'pap';
       Pencapca          : Result := 'pa';
       Portekizce        : Result := 'pt';
       Romence           : Result := 'ro';
       Rusca             : Result := 'ru';
       Sabuanca          : Result := 'ceb';
       Seylanca          : Result := 'si';
       Sirpca            : Result := 'sr';
       Slovakca          : Result := 'sk';
       Slovence          : Result := 'sl';
       Sundaca           : Result := 'su';
       Svahili           : Result := 'sw';
       Tacikce           : Result := 'tg';
       Tagalogca         : Result := 'tl';
       Tamilce           : Result := 'ta';
       Tatarca           : Result := 'tt';
       Taylandca         : Result := 'th';
       Teluguca          : Result := 'te';
       Turkce            : Result := 'tr';
       Udmurtca          : Result := 'udm';
       Ukraynaca         : Result := 'uk';
       Urduca            : Result := 'ur';
       Vietnamca         : Result := 'vi';
       Xhosaca           : Result := 'xh';
       Yidis             : Result := 'yi';
       Yunanca           : Result := 'el';
 end;
end;

end.

Hocam yine çitayı yükseltmişsiniz, elinize sağlık. Kodlarınızdan ekstra olarak Exit(True); kullanımını öğrenmiş oldum. Normalde bir begin end; kapatır açardık. Smile
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#15
(10-10-2018, Saat: 17:13)Cyber Adlı Kullanıcıdan Alıntı:
(10-10-2018, Saat: 16:53)edo Adlı Kullanıcıdan Alıntı:
uses SysUtils, System.Classes, System.Net.HttpClientComponent, Xml.XMLDoc, 
Forms,
StrUtils;
şeklinde sorun çıkarmaması lazım. Bu özellik/notasyonun bildiğim kadarıyla geliş amacı zaten Vcl ve Fmx uyumlu kütüphane linklerinde sorun yaşamamak olması lazım.

Hocam,
Community Edition sürümü kullanıyorum. Yeni bir "Multi-Device Application"  oluşturup ilgili uniti projeye dahil edersek burada FMX yada VCL belirtmemizi istiyor.

2.png

1.png

Project>Options>Compiler altına Unit Scope Names diye bir alan var, onu bir incelemenenizi öneririm.

Dotted unit names in Delphi

Unit_Scope_Names

Adding Unit Scope Names for Your Own Components
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Yandex Map quiet1day 1 1.097 02-12-2021, Saat: 12:25
Son Yorum: forumcuali
  translate.yandex.com sitesinden bilgi parser etme delhici 15 7.969 02-12-2020, Saat: 22:40
Son Yorum: delhici



Konuyu Okuyanlar: 1 Ziyaretçi