goog.i18n.bidi
Namespacegoog.i18n.bidi.Dir
EnumDirectionality enum. … more
.FORCE_RTL
goog.i18n.bidi.Format
EnumUnicode formatting characters and directionality string constants. … more
.I18N_LEFT
{string
}'right' if locale is RTL, 'left' if not.
.I18N_RIGHT
{string
}'left' if locale is RTL, 'right' if not.
.IS_RTL
{boolean
}Constant that defines whether or not the current locale is a RTL locale. If {@link goog.i18n.bidi.FORCE_RTL} is not true, this constant will default to check that {@link goog.LOCALE} is one of a few major RTL locales.
This is designed to be a maximally efficient compile-time constant. For example, for the default goog.LOCALE, compiling "if (goog.i18n.bidi.IS_RTL) alert('rtl') else {}" should produce no code. It is this design consideration that limits the implementation to only supporting a few major RTL locales, as opposed to the broader repertoire of something like goog.i18n.bidi.isRtlLanguage.
Since this constant refers to the directionality of the locale, it is up to the caller to determine if this constant should also be used for the direction of the UI. {@see goog.LOCALE}
.LEFT
{string
}'left' string constant.
.RIGHT
{string
}'right' string constant.
.detectRtlDirectionality(str, opt_isHtml)
Check the directionality of a piece of text, return true if the piece of text should be laid out in RTL direction.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.endsWithLtr(str, opt_isHtml)
Check if the exit directionality a piece of text is LTR, i.e. if the last strongly-directional character in the string is LTR.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.endsWithRtl(str, opt_isHtml)
Check if the exit directionality a piece of text is RTL, i.e. if the last strongly-directional character in the string is RTL.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.enforceLtrInHtml(html)
Enforce the html snippet in RTL directionality regardless overall context. If the html piece was enclosed by tag, dir will be applied to existing tag, otherwise a span tag will be added as wrapper. For this reason, if html snippet start with with tag, this tag must enclose the whole piece. If the tag already has a dir specified, this new one will override existing one in behavior (tested on FF and IE).
html
{string
}
string
}
.enforceLtrInText(text)
Enforce LTR on both end of the given text piece using unicode BiDi formatting characters LRE and PDF.
text
{string
}
string
}
.enforceRtlInHtml(html)
Enforce the html snippet in RTL directionality regardless overall context. If the html piece was enclosed by tag, dir will be applied to existing tag, otherwise a span tag will be added as wrapper. For this reason, if html snippet start with with tag, this tag must enclose the whole piece. If the tag already has a dir specified, this new one will override existing one in behavior (tested on FF and IE).
html
{string
}
string
}
.enforceRtlInText(text)
Enforce RTL on both end of the given text piece using unicode BiDi formatting characters RLE and PDF.
text
{string
}
string
}
.estimateDirection(str, opt_isHtml)
Estimates the directionality of a string based on relative word counts. If the number of RTL words is above a certain percentage of the total number of strongly directional words, returns RTL. Otherwise, if any words are strongly or weakly LTR, returns LTR. Otherwise, returns UNKNOWN, which is used to mean "neutral". Numbers are counted as weakly LTR.
str
{string
}
opt_isHtml
{boolean
=}
goog.i18n.bidi.Dir
}
.guardBracketInHtml(s, opt_isRtlContext)
Apply bracket guard using html span tag. This is to address the problem of messy bracket display frequently happens in RTL layout.
s
{string
}
opt_isRtlContext
{boolean
=}
string
}
.guardBracketInText(s, opt_isRtlContext)
Apply bracket guard using LRM and RLM. This is to address the problem of messy bracket display frequently happens in RTL layout. This version works for both plain text and html. But it does not work as good as guardBracketInHtml in some cases.
s
{string
}
opt_isRtlContext
{boolean
=}
string
}
.hasAnyLtr(str, opt_isHtml)
Test whether the given string has any LTR characters in it.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.hasAnyRtl(str, opt_isHtml)
Test whether the given string has any RTL characters in it.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.hasRtlChar
[deprecated]Deprecated. Use hasAnyRtl.
Test whether the given string has any RTL characters in it.
str
{string
}
boolean
}
.isLtrChar(str)
Check if the first character in the string is LTR or not.
str
{string
}
boolean
}
.isLtrExitText
[deprecated]Deprecated. Use endsWithLtr.
Check if the exit directionality a piece of text is LTR, i.e. if the last strongly-directional character in the string is LTR.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.isLtrText
[deprecated]Deprecated. Use startsWithLtr.
Check whether the first strongly directional character (if any) is LTR.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.isNeutralChar(str)
Check if the first character in the string is neutral or not.
str
{string
}
boolean
}
.isNeutralText(str, opt_isHtml)
Check whether the input string either contains no strongly directional characters or looks like a url.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.isRtlChar(str)
Check if the first character in the string is RTL or not.
str
{string
}
boolean
}
.isRtlExitText
[deprecated]Deprecated. Use endsWithRtl.
Check if the exit directionality a piece of text is RTL, i.e. if the last strongly-directional character in the string is RTL.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.isRtlLanguage(lang)
Check if a BCP 47 / III language code indicates an RTL language, i.e. either: - a language code explicitly specifying one of the right-to-left scripts, e.g. "az-Arab", or
- a language code specifying one of the languages normally written in a right-to-left script, e.g. "fa" (Farsi), except ones explicitly specifying Latin or Cyrillic script (which are the usual LTR alternatives).
The list of right-to-left scripts appears in the 100-199 range in http://www.unicode.org/iso15924/iso15924-num.html, of which Arabic and Hebrew are by far the most widely used. We also recognize Thaana, N'Ko, and Tifinagh, which also have significant modern usage. The rest (Syriac, Samaritan, Mandaic, etc.) seem to have extremely limited or no modern usage and are not recognized to save on code size. The languages usually written in a right-to-left script are taken as those with Suppress-Script: Hebr|Arab|Thaa|Nkoo|Tfng in http://www.iana.org/assignments/language-subtag-registry, as well as Sindhi (sd) and Uyghur (ug). Other subtags of the language code, e.g. regions like EG (Egypt), are ignored.
lang
{string
}
boolean
}
.isRtlText
[deprecated]Deprecated. Use startsWithRtl.
Check whether the first strongly directional character (if any) is RTL.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.mirrorCSS(cssStr)
Swap location parameters and 'left'/'right' in CSS specification. The processed string will be suited for RTL layout. Though this function can cover most cases, there are always exceptions. It is suggested to put those exceptions in separate group of CSS string.
cssStr
{string
}
string
}
.normalizeHebrewQuote(str)
Replace the double and single quote directly after a Hebrew character with GERESH and GERSHAYIM. In such case, most likely that's user intention.
str
{string
}
string
}
.setElementDirAndAlign(element, dir)
Sets text input element's directionality and text alignment based on a given directionality.
element
{Element
}
dir
{goog.i18n.bidi.Dir
|number
|boolean
}
.startsWithLtr(str, opt_isHtml)
Check whether the first strongly directional character (if any) is LTR.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.startsWithRtl(str, opt_isHtml)
Check whether the first strongly directional character (if any) is RTL.
str
{string
}
opt_isHtml
{boolean
=}
boolean
}
.toDir(givenDir)
Convert a directionality given in various formats to a goog.i18n.bidi.Dir constant. Useful for interaction with different standards of directionality representation.
givenDir
{goog.i18n.bidi.Dir
|number
|boolean
}
goog.i18n.bidi.Dir
}