fcklanguagemanager.js
上传用户:dbstep
上传日期:2022-08-06
资源大小:2803k
文件大小:4k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

ASP/ASPX

  1. /*
  2.  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3.  * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  4.  *
  5.  * == BEGIN LICENSE ==
  6.  *
  7.  * Licensed under the terms of any of the following licenses at your
  8.  * choice:
  9.  *
  10.  *  - GNU General Public License Version 2 or later (the "GPL")
  11.  *    http://www.gnu.org/licenses/gpl.html
  12.  *
  13.  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  14.  *    http://www.gnu.org/licenses/lgpl.html
  15.  *
  16.  *  - Mozilla Public License Version 1.1 or later (the "MPL")
  17.  *    http://www.mozilla.org/MPL/MPL-1.1.html
  18.  *
  19.  * == END LICENSE ==
  20.  *
  21.  * Defines the FCKLanguageManager object that is used for language
  22.  * operations.
  23.  */
  24. var FCKLanguageManager = FCK.Language =
  25. {
  26. AvailableLanguages :
  27. {
  28. af : 'Afrikaans',
  29. ar : 'Arabic',
  30. bg : 'Bulgarian',
  31. bn : 'Bengali/Bangla',
  32. bs : 'Bosnian',
  33. ca : 'Catalan',
  34. cs : 'Czech',
  35. da : 'Danish',
  36. de : 'German',
  37. el : 'Greek',
  38. en : 'English',
  39. 'en-au' : 'English (Australia)',
  40. 'en-ca' : 'English (Canadian)',
  41. 'en-uk' : 'English (United Kingdom)',
  42. eo : 'Esperanto',
  43. es : 'Spanish',
  44. et : 'Estonian',
  45. eu : 'Basque',
  46. fa : 'Persian',
  47. fi : 'Finnish',
  48. fo : 'Faroese',
  49. fr : 'French',
  50. 'fr-ca' : 'French (Canada)',
  51. gl : 'Galician',
  52. gu : 'Gujarati',
  53. he : 'Hebrew',
  54. hi : 'Hindi',
  55. hr : 'Croatian',
  56. hu : 'Hungarian',
  57. is : 'Icelandic',
  58. it : 'Italian',
  59. ja : 'Japanese',
  60. km : 'Khmer',
  61. ko : 'Korean',
  62. lt : 'Lithuanian',
  63. lv : 'Latvian',
  64. mn : 'Mongolian',
  65. ms : 'Malay',
  66. nb : 'Norwegian Bokmal',
  67. nl : 'Dutch',
  68. no : 'Norwegian',
  69. pl : 'Polish',
  70. pt : 'Portuguese (Portugal)',
  71. 'pt-br' : 'Portuguese (Brazil)',
  72. ro : 'Romanian',
  73. ru : 'Russian',
  74. sk : 'Slovak',
  75. sl : 'Slovenian',
  76. sr : 'Serbian (Cyrillic)',
  77. 'sr-latn' : 'Serbian (Latin)',
  78. sv : 'Swedish',
  79. th : 'Thai',
  80. tr : 'Turkish',
  81. uk : 'Ukrainian',
  82. vi : 'Vietnamese',
  83. zh : 'Chinese Traditional',
  84. 'zh-cn' : 'Chinese Simplified'
  85. },
  86. GetActiveLanguage : function()
  87. {
  88. if ( FCKConfig.AutoDetectLanguage )
  89. {
  90. var sUserLang ;
  91. // IE accepts "navigator.userLanguage" while Gecko "navigator.language".
  92. if ( navigator.userLanguage )
  93. sUserLang = navigator.userLanguage.toLowerCase() ;
  94. else if ( navigator.language )
  95. sUserLang = navigator.language.toLowerCase() ;
  96. else
  97. {
  98. // Firefox 1.0 PR has a bug: it doens't support the "language" property.
  99. return FCKConfig.DefaultLanguage ;
  100. }
  101. // Some language codes are set in 5 characters,
  102. // like "pt-br" for Brazilian Portuguese.
  103. if ( sUserLang.length >= 5 )
  104. {
  105. sUserLang = sUserLang.substr(0,5) ;
  106. if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
  107. }
  108. // If the user's browser is set to, for example, "pt-br" but only the
  109. // "pt" language file is available then get that file.
  110. if ( sUserLang.length >= 2 )
  111. {
  112. sUserLang = sUserLang.substr(0,2) ;
  113. if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
  114. }
  115. }
  116. return this.DefaultLanguage ;
  117. },
  118. TranslateElements : function( targetDocument, tag, propertyToSet, encode )
  119. {
  120. var e = targetDocument.getElementsByTagName(tag) ;
  121. var sKey, s ;
  122. for ( var i = 0 ; i < e.length ; i++ )
  123. {
  124. // The extra () is to avoid a warning with strict error checking. This is ok.
  125. if ( (sKey = e[i].getAttribute( 'fckLang' )) )
  126. {
  127. // The extra () is to avoid a warning with strict error checking. This is ok.
  128. if ( (s = FCKLang[ sKey ]) )
  129. {
  130. if ( encode )
  131. s = FCKTools.HTMLEncode( s ) ;
  132. e[i][ propertyToSet ] = s ;
  133. }
  134. }
  135. }
  136. },
  137. TranslatePage : function( targetDocument )
  138. {
  139. this.TranslateElements( targetDocument, 'INPUT', 'value' ) ;
  140. this.TranslateElements( targetDocument, 'SPAN', 'innerHTML' ) ;
  141. this.TranslateElements( targetDocument, 'LABEL', 'innerHTML' ) ;
  142. this.TranslateElements( targetDocument, 'OPTION', 'innerHTML', true ) ;
  143. this.TranslateElements( targetDocument, 'LEGEND', 'innerHTML' ) ;
  144. },
  145. Initialize : function()
  146. {
  147. if ( this.AvailableLanguages[ FCKConfig.DefaultLanguage ] )
  148. this.DefaultLanguage = FCKConfig.DefaultLanguage ;
  149. else
  150. this.DefaultLanguage = 'en' ;
  151. this.ActiveLanguage = new Object() ;
  152. this.ActiveLanguage.Code = this.GetActiveLanguage() ;
  153. this.ActiveLanguage.Name = this.AvailableLanguages[ this.ActiveLanguage.Code ] ;
  154. }
  155. } ;