fcklanguagemanager.js
上传用户:ah_jiwei
上传日期:2022-07-24
资源大小:54044k
文件大小:4k
源码类别:

数据库编程

开发平台:

Visual C++

  1. /*
  2.  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3.  * Copyright (C) 2003-2007 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. gl : 'Galician',
  51. he : 'Hebrew',
  52. hi : 'Hindi',
  53. hr : 'Croatian',
  54. hu : 'Hungarian',
  55. it : 'Italian',
  56. ja : 'Japanese',
  57. km : 'Khmer',
  58. ko : 'Korean',
  59. lt : 'Lithuanian',
  60. lv : 'Latvian',
  61. mn : 'Mongolian',
  62. ms : 'Malay',
  63. nb : 'Norwegian Bokmal',
  64. nl : 'Dutch',
  65. no : 'Norwegian',
  66. pl : 'Polish',
  67. pt : 'Portuguese (Portugal)',
  68. 'pt-br' : 'Portuguese (Brazil)',
  69. ro : 'Romanian',
  70. ru : 'Russian',
  71. sk : 'Slovak',
  72. sl : 'Slovenian',
  73. sr : 'Serbian (Cyrillic)',
  74. 'sr-latn' : 'Serbian (Latin)',
  75. sv : 'Swedish',
  76. th : 'Thai',
  77. tr : 'Turkish',
  78. uk : 'Ukrainian',
  79. vi : 'Vietnamese',
  80. zh : 'Chinese Traditional',
  81. 'zh-cn' : 'Chinese Simplified'
  82. },
  83. GetActiveLanguage : function()
  84. {
  85. if ( FCKConfig.AutoDetectLanguage )
  86. {
  87. var sUserLang ;
  88. // IE accepts "navigator.userLanguage" while Gecko "navigator.language".
  89. if ( navigator.userLanguage )
  90. sUserLang = navigator.userLanguage.toLowerCase() ;
  91. else if ( navigator.language )
  92. sUserLang = navigator.language.toLowerCase() ;
  93. else
  94. {
  95. // Firefox 1.0 PR has a bug: it doens't support the "language" property.
  96. return FCKConfig.DefaultLanguage ;
  97. }
  98. // Some language codes are set in 5 characters,
  99. // like "pt-br" for Brazilian Portuguese.
  100. if ( sUserLang.length >= 5 )
  101. {
  102. sUserLang = sUserLang.substr(0,5) ;
  103. if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
  104. }
  105. // If the user's browser is set to, for example, "pt-br" but only the
  106. // "pt" language file is available then get that file.
  107. if ( sUserLang.length >= 2 )
  108. {
  109. sUserLang = sUserLang.substr(0,2) ;
  110. if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
  111. }
  112. }
  113. return this.DefaultLanguage ;
  114. },
  115. TranslateElements : function( targetDocument, tag, propertyToSet, encode )
  116. {
  117. var e = targetDocument.getElementsByTagName(tag) ;
  118. var sKey, s ;
  119. for ( var i = 0 ; i < e.length ; i++ )
  120. {
  121. // The extra () is to avoid a warning with strict error checking. This is ok.
  122. if ( (sKey = e[i].getAttribute( 'fckLang' )) )
  123. {
  124. // The extra () is to avoid a warning with strict error checking. This is ok.
  125. if ( (s = FCKLang[ sKey ]) )
  126. {
  127. if ( encode )
  128. s = FCKTools.HTMLEncode( s ) ;
  129. e[i][ propertyToSet ] = s ;
  130. }
  131. }
  132. }
  133. },
  134. TranslatePage : function( targetDocument )
  135. {
  136. this.TranslateElements( targetDocument, 'INPUT', 'value' ) ;
  137. this.TranslateElements( targetDocument, 'SPAN', 'innerHTML' ) ;
  138. this.TranslateElements( targetDocument, 'LABEL', 'innerHTML' ) ;
  139. this.TranslateElements( targetDocument, 'OPTION', 'innerHTML', true ) ;
  140. this.TranslateElements( targetDocument, 'LEGEND', 'innerHTML' ) ;
  141. },
  142. Initialize : function()
  143. {
  144. if ( this.AvailableLanguages[ FCKConfig.DefaultLanguage ] )
  145. this.DefaultLanguage = FCKConfig.DefaultLanguage ;
  146. else
  147. this.DefaultLanguage = 'en' ;
  148. this.ActiveLanguage = new Object() ;
  149. this.ActiveLanguage.Code = this.GetActiveLanguage() ;
  150. this.ActiveLanguage.Name = this.AvailableLanguages[ this.ActiveLanguage.Code ] ;
  151. }
  152. } ;