translate_basic.lpr 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. program translate_basic;
  2. {$mode objfpc}
  3. uses
  4. JS, Web, mystrings, rstranslate;
  5. Resourcestring
  6. BasicTitle = 'Translation using resource strings - Basic API';
  7. Type
  8. { TTranslateApp }
  9. TTranslateApp = Class
  10. FHeader : TJSHTMLELement;
  11. FPar : TJSHTMLELement;
  12. FButton : TJSHTMLButtonELement;
  13. FIsDutch : Boolean;
  14. Constructor Create;
  15. Function GetEl(const aName : string) : TJSHTMLELement;
  16. Procedure Bind;
  17. Procedure SetTexts;
  18. private
  19. function DoTranslation(aEvent: TJSMouseEvent): boolean;
  20. procedure TranslateStrings;
  21. end;
  22. { TTranslateApp }
  23. constructor TTranslateApp.Create;
  24. begin
  25. Bind;
  26. end;
  27. function TTranslateApp.GetEl(const aName: string): TJSHTMLELement;
  28. begin
  29. Result:=TJSHTMLELement(Document.getElementById(aName));
  30. end;
  31. procedure TTranslateApp.Bind;
  32. begin
  33. FHeader:=GetEl('translate-header');
  34. FPar:=GetEl('translate-text');
  35. FButton:=TJSHTMLButtonELement(GetEl('btn-translate'));
  36. FButton.onclick:=@DoTranslation;
  37. end;
  38. procedure TTranslateApp.SetTexts;
  39. begin
  40. FHeader.InnerHTML:=Header;
  41. FButton.InnerHTML:=Button;
  42. FPar.InnerHtml:=Paragraph+' '+TranslateDirect;
  43. document.title:=BasicTitle;
  44. // window. title:=BasicTitle;
  45. end;
  46. procedure TTranslateApp.TranslateStrings;
  47. begin
  48. FIsDutch:=Not FIsDutch;
  49. if FIsDutch then
  50. begin
  51. Translate('program','BasicTitle','Vertaling met resourcestrings - directe API');
  52. Translate('mystrings','Button','Vertaal deze pagina');
  53. Translate('mystrings','Header','Vertaling met resourcestrings');
  54. Translate('mystrings','Paragraph','Deze tekst wordt vertaald.');
  55. Translate('mystrings','TranslateDirect','De directe API wordt gebruikt voor dit voorbeeld.');
  56. Translate('mystrings','TranslateJSON','Een JSON object wordt gebruikt voor dit voorbeeld.');
  57. Translate('mystrings','TranslateURL','Een URL wordt gebruikt voor dit voorbeeld.');
  58. end
  59. else
  60. begin
  61. // Single string of a module
  62. ResetTranslation('program','BasicTitle');
  63. // All strings in a module
  64. ResetTranslation('mystrings');
  65. end;
  66. end;
  67. function TTranslateApp.DoTranslation(aEvent: TJSMouseEvent): boolean;
  68. begin
  69. TranslateStrings;
  70. SetTexts;
  71. Result:=True;
  72. end;
  73. begin
  74. With TTranslateApp.Create do
  75. SetTexts;
  76. end.