Repository URL to install this package:
|
Version:
3.2.0 ▾
|
unit googletranslate;
{$MODE objfpc}
{$H+}
interface
uses sysutils, classes, googleservice, restbase, googlebase;
type
//Top-level schema types
TDetectionsListResponse = Class;
TDetectionsResourceItem = Class;
TLanguagesListResponse = Class;
TLanguagesResource = Class;
TTranslationsListResponse = Class;
TTranslationsResource = Class;
TDetectionsListResponseArray = Array of TDetectionsListResponse;
TDetectionsResourceItemArray = Array of TDetectionsResourceItem;
TDetectionsResource = Array of TDetectionsResourceItem;
TLanguagesListResponseArray = Array of TLanguagesListResponse;
TLanguagesResourceArray = Array of TLanguagesResource;
TTranslationsListResponseArray = Array of TTranslationsListResponse;
TTranslationsResourceArray = Array of TTranslationsResource;
//Anonymous types, using auto-generated names
TDetectionsListResponseTypedetectionsArray = Array of TDetectionsResource;
TLanguagesListResponseTypelanguagesArray = Array of TLanguagesResource;
TTranslationsListResponseTypetranslationsArray = Array of TTranslationsResource;
{ --------------------------------------------------------------------
TDetectionsListResponse
--------------------------------------------------------------------}
TDetectionsListResponse = Class(TGoogleBaseObject)
Private
Fdetections : TDetectionsListResponseTypedetectionsArray;
Protected
//Property setters
Procedure Setdetections(AIndex : Integer; const AValue : TDetectionsListResponseTypedetectionsArray); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property detections : TDetectionsListResponseTypedetectionsArray Index 0 Read Fdetections Write Setdetections;
end;
TDetectionsListResponseClass = Class of TDetectionsListResponse;
{ --------------------------------------------------------------------
TDetectionsResourceItem
--------------------------------------------------------------------}
TDetectionsResourceItem = Class(TGoogleBaseObject)
Private
Fconfidence : integer;
FisReliable : boolean;
Flanguage : String;
Protected
//Property setters
Procedure Setconfidence(AIndex : Integer; const AValue : integer); virtual;
Procedure SetisReliable(AIndex : Integer; const AValue : boolean); virtual;
Procedure Setlanguage(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property confidence : integer Index 0 Read Fconfidence Write Setconfidence;
Property isReliable : boolean Index 8 Read FisReliable Write SetisReliable;
Property language : String Index 16 Read Flanguage Write Setlanguage;
end;
TDetectionsResourceItemClass = Class of TDetectionsResourceItem;
{ --------------------------------------------------------------------
TLanguagesListResponse
--------------------------------------------------------------------}
TLanguagesListResponse = Class(TGoogleBaseObject)
Private
Flanguages : TLanguagesListResponseTypelanguagesArray;
Protected
//Property setters
Procedure Setlanguages(AIndex : Integer; const AValue : TLanguagesListResponseTypelanguagesArray); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property languages : TLanguagesListResponseTypelanguagesArray Index 0 Read Flanguages Write Setlanguages;
end;
TLanguagesListResponseClass = Class of TLanguagesListResponse;
{ --------------------------------------------------------------------
TLanguagesResource
--------------------------------------------------------------------}
TLanguagesResource = Class(TGoogleBaseObject)
Private
Flanguage : String;
Fname : String;
Protected
//Property setters
Procedure Setlanguage(AIndex : Integer; const AValue : String); virtual;
Procedure Setname(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property language : String Index 0 Read Flanguage Write Setlanguage;
Property name : String Index 8 Read Fname Write Setname;
end;
TLanguagesResourceClass = Class of TLanguagesResource;
{ --------------------------------------------------------------------
TTranslationsListResponse
--------------------------------------------------------------------}
TTranslationsListResponse = Class(TGoogleBaseObject)
Private
Ftranslations : TTranslationsListResponseTypetranslationsArray;
Protected
//Property setters
Procedure Settranslations(AIndex : Integer; const AValue : TTranslationsListResponseTypetranslationsArray); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property translations : TTranslationsListResponseTypetranslationsArray Index 0 Read Ftranslations Write Settranslations;
end;
TTranslationsListResponseClass = Class of TTranslationsListResponse;
{ --------------------------------------------------------------------
TTranslationsResource
--------------------------------------------------------------------}
TTranslationsResource = Class(TGoogleBaseObject)
Private
FdetectedSourceLanguage : String;
FtranslatedText : String;
Protected
//Property setters
Procedure SetdetectedSourceLanguage(AIndex : Integer; const AValue : String); virtual;
Procedure SettranslatedText(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property detectedSourceLanguage : String Index 0 Read FdetectedSourceLanguage Write SetdetectedSourceLanguage;
Property translatedText : String Index 8 Read FtranslatedText Write SettranslatedText;
end;
TTranslationsResourceClass = Class of TTranslationsResource;
{ --------------------------------------------------------------------
TDetections_Resource
--------------------------------------------------------------------}
//Optional query Options for TDetections_Resource, method List
TDetectionsListOptions = Record
q : String;
end;
TDetections_Resource = Class(TGoogleResource)
Public
Class Function ResourceName : String; override;
Class Function DefaultAPI : TGoogleAPIClass; override;
Function List(AQuery : string = '') : TDetectionsListResponse;
Function List(AQuery : TDetectionslistOptions) : TDetectionsListResponse;
end;
{ --------------------------------------------------------------------
TLanguages_Resource
--------------------------------------------------------------------}
//Optional query Options for TLanguages_Resource, method List
TLanguagesListOptions = Record
target : String;
end;
TLanguages_Resource = Class(TGoogleResource)
Public
Class Function ResourceName : String; override;
Class Function DefaultAPI : TGoogleAPIClass; override;
Function List(AQuery : string = '') : TLanguagesListResponse;
Function List(AQuery : TLanguageslistOptions) : TLanguagesListResponse;
end;
{ --------------------------------------------------------------------
TTranslations_Resource
--------------------------------------------------------------------}
//Optional query Options for TTranslations_Resource, method List
TTranslationsListOptions = Record
cid : String;
format : String;
q : String;
source : String;
target : String;
end;
TTranslations_Resource = Class(TGoogleResource)
Public
Class Function ResourceName : String; override;
Class Function DefaultAPI : TGoogleAPIClass; override;
Function List(AQuery : string = '') : TTranslationsListResponse;
Function List(AQuery : TTranslationslistOptions) : TTranslationsListResponse;
end;
{ --------------------------------------------------------------------
TTranslateAPI
--------------------------------------------------------------------}
TTranslateAPI = Class(TGoogleAPI)
Private
FDetectionsInstance : TDetections_Resource;
FLanguagesInstance : TLanguages_Resource;
FTranslationsInstance : TTranslations_Resource;
Function GetDetectionsInstance : TDetections_Resource;virtual;
Function GetLanguagesInstance : TLanguages_Resource;virtual;
Function GetTranslationsInstance : TTranslations_Resource;virtual;
Public
//Override class functions with API info
Class Function APIName : String; override;
Class Function APIVersion : String; override;
Class Function APIRevision : String; override;
Class Function APIID : String; override;
Class Function APITitle : String; override;
Class Function APIDescription : String; override;
Class Function APIOwnerDomain : String; override;
Class Function APIOwnerName : String; override;
Class Function APIIcon16 : String; override;
Class Function APIIcon32 : String; override;
Class Function APIdocumentationLink : String; override;
Class Function APIrootUrl : string; override;
Class Function APIbasePath : string;override;
Class Function APIbaseURL : String;override;
Class Function APIProtocol : string;override;
Class Function APIservicePath : string;override;
Class Function APIbatchPath : String;override;
Class Function APIAuthScopes : TScopeInfoArray;override;
Class Function APINeedsAuth : Boolean;override;
Class Procedure RegisterAPIResources; override;
//Add create function for resources
Function CreateDetectionsResource(AOwner : TComponent) : TDetections_Resource;virtual;overload;
Function CreateDetectionsResource : TDetections_Resource;virtual;overload;
Function CreateLanguagesResource(AOwner : TComponent) : TLanguages_Resource;virtual;overload;
Function CreateLanguagesResource : TLanguages_Resource;virtual;overload;
Function CreateTranslationsResource(AOwner : TComponent) : TTranslations_Resource;virtual;overload;
Function CreateTranslationsResource : TTranslations_Resource;virtual;overload;
//Add default on-demand instances for resources
Property DetectionsResource : TDetections_Resource Read GetDetectionsInstance;
Property LanguagesResource : TLanguages_Resource Read GetLanguagesInstance;
Property TranslationsResource : TTranslations_Resource Read GetTranslationsInstance;
end;
implementation
{ --------------------------------------------------------------------
TDetectionsListResponse
--------------------------------------------------------------------}
Procedure TDetectionsListResponse.Setdetections(AIndex : Integer; const AValue : TDetectionsListResponseTypedetectionsArray);
begin
If (Fdetections=AValue) then exit;
Fdetections:=AValue;
MarkPropertyChanged(AIndex);
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TDetectionsListResponse.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'detections' : SetLength(Fdetections,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TDetectionsResourceItem
--------------------------------------------------------------------}
Procedure TDetectionsResourceItem.Setconfidence(AIndex : Integer; const AValue : integer);
begin
If (Fconfidence=AValue) then exit;
Fconfidence:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TDetectionsResourceItem.SetisReliable(AIndex : Integer; const AValue : boolean);
begin
If (FisReliable=AValue) then exit;
FisReliable:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TDetectionsResourceItem.Setlanguage(AIndex : Integer; const AValue : String);
begin
If (Flanguage=AValue) then exit;
Flanguage:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TLanguagesListResponse
--------------------------------------------------------------------}
Procedure TLanguagesListResponse.Setlanguages(AIndex : Integer; const AValue : TLanguagesListResponseTypelanguagesArray);
begin
If (Flanguages=AValue) then exit;
Flanguages:=AValue;
MarkPropertyChanged(AIndex);
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TLanguagesListResponse.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'languages' : SetLength(Flanguages,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TLanguagesResource
--------------------------------------------------------------------}
Procedure TLanguagesResource.Setlanguage(AIndex : Integer; const AValue : String);
begin
If (Flanguage=AValue) then exit;
Flanguage:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TLanguagesResource.Setname(AIndex : Integer; const AValue : String);
begin
If (Fname=AValue) then exit;
Fname:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TTranslationsListResponse
--------------------------------------------------------------------}
Procedure TTranslationsListResponse.Settranslations(AIndex : Integer; const AValue : TTranslationsListResponseTypetranslationsArray);
begin
If (Ftranslations=AValue) then exit;
Ftranslations:=AValue;
MarkPropertyChanged(AIndex);
end;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TTranslationsListResponse.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'translations' : SetLength(Ftranslations,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TTranslationsResource
--------------------------------------------------------------------}
Procedure TTranslationsResource.SetdetectedSourceLanguage(AIndex : Integer; const AValue : String);
begin
If (FdetectedSourceLanguage=AValue) then exit;
FdetectedSourceLanguage:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TTranslationsResource.SettranslatedText(AIndex : Integer; const AValue : String);
begin
If (FtranslatedText=AValue) then exit;
FtranslatedText:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TDetections_Resource
--------------------------------------------------------------------}
Class Function TDetections_Resource.ResourceName : String;
begin
Result:='detections';
end;
Class Function TDetections_Resource.DefaultAPI : TGoogleAPIClass;
begin
Result:=TtranslateAPI;
end;
Function TDetections_Resource.List(AQuery : string = '') : TDetectionsListResponse;
Const
_HTTPMethod = 'GET';
_Path = 'v2/detect';
_Methodid = 'language.detections.list';
begin
Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TDetectionsListResponse) as TDetectionsListResponse;
end;
Function TDetections_Resource.List(AQuery : TDetectionslistOptions) : TDetectionsListResponse;
Var
_Q : String;
begin
_Q:='';
AddToQuery(_Q,'q',AQuery.q);
Result:=List(_Q);
end;
{ --------------------------------------------------------------------
TLanguages_Resource
--------------------------------------------------------------------}
Class Function TLanguages_Resource.ResourceName : String;
begin
Result:='languages';
end;
Class Function TLanguages_Resource.DefaultAPI : TGoogleAPIClass;
begin
Result:=TtranslateAPI;
end;
Function TLanguages_Resource.List(AQuery : string = '') : TLanguagesListResponse;
Const
_HTTPMethod = 'GET';
_Path = 'v2/languages';
_Methodid = 'language.languages.list';
begin
Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TLanguagesListResponse) as TLanguagesListResponse;
end;
Function TLanguages_Resource.List(AQuery : TLanguageslistOptions) : TLanguagesListResponse;
Var
_Q : String;
begin
_Q:='';
AddToQuery(_Q,'target',AQuery.target);
Result:=List(_Q);
end;
{ --------------------------------------------------------------------
TTranslations_Resource
--------------------------------------------------------------------}
Class Function TTranslations_Resource.ResourceName : String;
begin
Result:='translations';
end;
Class Function TTranslations_Resource.DefaultAPI : TGoogleAPIClass;
begin
Result:=TtranslateAPI;
end;
Function TTranslations_Resource.List(AQuery : string = '') : TTranslationsListResponse;
Const
_HTTPMethod = 'GET';
_Path = 'v2';
_Methodid = 'language.translations.list';
begin
Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TTranslationsListResponse) as TTranslationsListResponse;
end;
Function TTranslations_Resource.List(AQuery : TTranslationslistOptions) : TTranslationsListResponse;
Var
_Q : String;
begin
_Q:='';
AddToQuery(_Q,'cid',AQuery.cid);
AddToQuery(_Q,'format',AQuery.format);
AddToQuery(_Q,'q',AQuery.q);
AddToQuery(_Q,'source',AQuery.source);
AddToQuery(_Q,'target',AQuery.target);
Result:=List(_Q);
end;
{ --------------------------------------------------------------------
TTranslateAPI
--------------------------------------------------------------------}
Class Function TTranslateAPI.APIName : String;
begin
Result:='translate';
end;
Class Function TTranslateAPI.APIVersion : String;
begin
Result:='v2';
end;
Class Function TTranslateAPI.APIRevision : String;
begin
Result:='20160217';
end;
Class Function TTranslateAPI.APIID : String;
begin
Result:='translate:v2';
end;
Class Function TTranslateAPI.APITitle : String;
begin
Result:='Translate API';
end;
Class Function TTranslateAPI.APIDescription : String;
begin
Result:='Lets you translate text from one language to another';
end;
Class Function TTranslateAPI.APIOwnerDomain : String;
begin
Result:='google.com';
end;
Class Function TTranslateAPI.APIOwnerName : String;
begin
Result:='Google';
end;
Class Function TTranslateAPI.APIIcon16 : String;
begin
Result:='https://www.google.com/images/icons/product/translate-16.png';
end;
Class Function TTranslateAPI.APIIcon32 : String;
begin
Result:='https://www.google.com/images/icons/product/translate-32.png';
end;
Class Function TTranslateAPI.APIdocumentationLink : String;
begin
Result:='https://developers.google.com/translate/v2/using_rest';
end;
Class Function TTranslateAPI.APIrootUrl : string;
begin
Result:='https://www.googleapis.com/';
end;
Class Function TTranslateAPI.APIbasePath : string;
begin
Result:='/language/translate/';
end;
Class Function TTranslateAPI.APIbaseURL : String;
begin
Result:='https://www.googleapis.com/language/translate/';
end;
Class Function TTranslateAPI.APIProtocol : string;
begin
Result:='rest';
end;
Class Function TTranslateAPI.APIservicePath : string;
begin
Result:='language/translate/';
end;
Class Function TTranslateAPI.APIbatchPath : String;
begin
Result:='batch';
end;
Class Function TTranslateAPI.APIAuthScopes : TScopeInfoArray;
begin
SetLength(Result,0);
end;
Class Function TTranslateAPI.APINeedsAuth : Boolean;
begin
Result:=False;
end;
Class Procedure TTranslateAPI.RegisterAPIResources;
begin
TDetectionsListResponse.RegisterObject;
TDetectionsResourceItem.RegisterObject;
TLanguagesListResponse.RegisterObject;
TLanguagesResource.RegisterObject;
TTranslationsListResponse.RegisterObject;
TTranslationsResource.RegisterObject;
end;
Function TTranslateAPI.GetDetectionsInstance : TDetections_Resource;
begin
if (FDetectionsInstance=Nil) then
FDetectionsInstance:=CreateDetectionsResource;
Result:=FDetectionsInstance;
end;
Function TTranslateAPI.CreateDetectionsResource : TDetections_Resource;
begin
Result:=CreateDetectionsResource(Self);
end;
Function TTranslateAPI.CreateDetectionsResource(AOwner : TComponent) : TDetections_Resource;
begin
Result:=TDetections_Resource.Create(AOwner);
Result.API:=Self.API;
end;
Function TTranslateAPI.GetLanguagesInstance : TLanguages_Resource;
begin
if (FLanguagesInstance=Nil) then
FLanguagesInstance:=CreateLanguagesResource;
Result:=FLanguagesInstance;
end;
Function TTranslateAPI.CreateLanguagesResource : TLanguages_Resource;
begin
Result:=CreateLanguagesResource(Self);
end;
Function TTranslateAPI.CreateLanguagesResource(AOwner : TComponent) : TLanguages_Resource;
begin
Result:=TLanguages_Resource.Create(AOwner);
Result.API:=Self.API;
end;
Function TTranslateAPI.GetTranslationsInstance : TTranslations_Resource;
begin
if (FTranslationsInstance=Nil) then
FTranslationsInstance:=CreateTranslationsResource;
Result:=FTranslationsInstance;
end;
Function TTranslateAPI.CreateTranslationsResource : TTranslations_Resource;
begin
Result:=CreateTranslationsResource(Self);
end;
Function TTranslateAPI.CreateTranslationsResource(AOwner : TComponent) : TTranslations_Resource;
begin
Result:=TTranslations_Resource.Create(AOwner);
Result.API:=Self.API;
end;
initialization
TTranslateAPI.RegisterAPI;
end.