mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-01 13:24:25 +01:00
Merge pull request #18925 from twbs/fixes-18922
Make translation of custom file input text easier
This commit is contained in:
commit
a1bf344c4f
@ -817,3 +817,22 @@ Here's how it works:
|
|||||||
- We declare a `height` on the `<input>` for proper spacing for surrounding content.
|
- We declare a `height` on the `<input>` for proper spacing for surrounding content.
|
||||||
|
|
||||||
In other words, it's an entirely custom element, all generated via CSS.
|
In other words, it's an entirely custom element, all generated via CSS.
|
||||||
|
|
||||||
|
#### Translating or customizing the strings
|
||||||
|
|
||||||
|
The [`:lang()` pseudo-class](https://developer.mozilla.org/en-US/docs/Web/CSS/:lang) is used to allow for easy translation of the "Browse" and "Choose file..." text into other languages. Simply override or add entries to the `$custom-file-text` SCSS variable with the relevant [language tag](https://en.wikipedia.org/wiki/IETF_language_tag) and localized strings. The English strings can be customized the same way. For example, here's how one might add a Spanish translation (Spanish's language code is `es`):
|
||||||
|
|
||||||
|
{% highlight scss %}
|
||||||
|
$custom-file-text: (
|
||||||
|
placeholder: (
|
||||||
|
en: "Choose file...",
|
||||||
|
es: "Seleccionar archivo..."
|
||||||
|
),
|
||||||
|
button-label: (
|
||||||
|
en: "Browse",
|
||||||
|
es: "Navegar"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
You'll need to set the language of your document (or subtree thereof) correctly in order for the correct text to be shown. This can be done using [the `lang` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) or the [`Content-Language` HTTP header](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.12), among other methods.
|
||||||
|
@ -218,8 +218,10 @@
|
|||||||
@include border-radius($custom-file-border-radius);
|
@include border-radius($custom-file-border-radius);
|
||||||
@include box-shadow($custom-file-box-shadow);
|
@include box-shadow($custom-file-box-shadow);
|
||||||
|
|
||||||
&::after {
|
@each $lang, $text in map-get($custom-file-text, placeholder) {
|
||||||
content: $custom-file-placeholder;
|
&:lang(#{$lang})::after {
|
||||||
|
content: $text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
@ -233,9 +235,14 @@
|
|||||||
padding: $custom-file-padding-x $custom-file-padding-y;
|
padding: $custom-file-padding-x $custom-file-padding-y;
|
||||||
line-height: $custom-file-line-height;
|
line-height: $custom-file-line-height;
|
||||||
color: $custom-file-button-color;
|
color: $custom-file-button-color;
|
||||||
content: $custom-file-button-label;
|
|
||||||
background-color: $custom-file-button-bg;
|
background-color: $custom-file-button-bg;
|
||||||
border: $custom-file-border-width solid $custom-file-border-color;
|
border: $custom-file-border-width solid $custom-file-border-color;
|
||||||
@include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);
|
@include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@each $lang, $text in map-get($custom-file-text, button-label) {
|
||||||
|
&:lang(#{$lang})::before {
|
||||||
|
content: $text;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -404,10 +404,16 @@ $custom-file-border-width: $border-width !default;
|
|||||||
$custom-file-border-color: #ddd !default;
|
$custom-file-border-color: #ddd !default;
|
||||||
$custom-file-border-radius: $border-radius !default;
|
$custom-file-border-radius: $border-radius !default;
|
||||||
$custom-file-box-shadow: inset 0 .2rem .4rem rgba(0,0,0,.05) !default;
|
$custom-file-box-shadow: inset 0 .2rem .4rem rgba(0,0,0,.05) !default;
|
||||||
$custom-file-placeholder: "Choose file..." !default;
|
|
||||||
$custom-file-button-label: "Browse" !default;
|
|
||||||
$custom-file-button-color: $custom-file-color !default;
|
$custom-file-button-color: $custom-file-color !default;
|
||||||
$custom-file-button-bg: #eee !default;
|
$custom-file-button-bg: #eee !default;
|
||||||
|
$custom-file-text: (
|
||||||
|
placeholder: (
|
||||||
|
en: "Choose file..."
|
||||||
|
),
|
||||||
|
button-label: (
|
||||||
|
en: "Browse"
|
||||||
|
)
|
||||||
|
) !default;
|
||||||
|
|
||||||
|
|
||||||
// Form validation icons
|
// Form validation icons
|
||||||
|
Loading…
Reference in New Issue
Block a user