i18n-adapt
Version:
Automatically internationalize and adapt web application UI for multiple languages
164 lines (138 loc) • 3.07 kB
CSS
/* ResponsiveLanguage.css */
/* Language-specific styling to handle text expansion in different languages */
/* Base language-responsive classes */
.lang-responsive {
display: flex;
align-items: center;
flex-wrap: nowrap;
min-width: 0;
}
/* Button specific language handling */
.lang-btn {
display: inline-flex;
align-items: center;
justify-content: center;
white-space: normal;
min-height: 2.5rem;
height: auto ;
padding: 0.5rem 1rem;
width: auto ;
min-width: 6rem;
}
/* Text wrapping controls */
.lang-wrap {
white-space: normal ;
word-break: break-word;
overflow-wrap: break-word;
}
/* Container classes */
.lang-container {
width: 100%;
max-width: 100%;
overflow: hidden;
}
/* Language-specific adjustments */
[lang="es"] {
--lang-text-scale: 0.95;
--lang-expansion: 1.2;
}
[lang="zh"] {
--lang-text-scale: 1;
--lang-expansion: 0.85;
}
[lang="hi"] {
--lang-text-scale: 0.9;
--lang-expansion: 1.3;
}
[lang="ar"] {
--lang-text-scale: 0.9;
--lang-expansion: 1.25;
direction: rtl;
}
/* Responsive font sizing */
.lang-text-responsive {
font-size: calc(1em * var(--lang-text-scale, 1));
}
/* Spanish specific adjustments */
[lang="es"] .lang-btn {
font-size: 0.9rem;
}
/* Hindi specific adjustments */
[lang="hi"] .lang-btn {
font-size: 0.85rem;
}
/* Chinese specific adjustments */
[lang="zh"] .lang-btn {
min-width: 5rem;
}
/* RTL languages (Arabic, Hebrew) */
[lang="ar"] .lang-container,
[lang="he"] .lang-container {
direction: rtl;
text-align: right;
}
/* Card headers for language handling */
.lang-card-header {
display: flex;
flex-direction: column;
height: auto ;
min-height: 3rem;
}
/* Icon + text handling */
.lang-icon-text {
display: flex;
align-items: center;
gap: 0.5rem;
flex-wrap: wrap;
}
/* Forms and inputs */
.lang-input {
min-width: 0;
width: 100%;
}
/* Tables that need to be responsive */
.lang-table {
table-layout: auto;
width: 100%;
}
.lang-table td,
.lang-table th {
white-space: normal ;
}
/* Navigation menus */
.lang-nav {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.lang-nav-item {
white-space: normal;
min-width: 0;
}
/* Tooltips and popovers */
.lang-tooltip {
max-width: 20rem;
word-break: break-word;
}
/* Modal dialogs */
.lang-modal {
min-width: 0;
width: 100%;
max-width: 90vw;
}
.lang-modal-title {
overflow-wrap: break-word;
}
/* Debug mode for visual testing */
.debug-text-length {
border: 1px solid red;
}
/* Media queries for different screen sizes */
@media (max-width: 768px) {
.lang-btn {
font-size: calc(1em * var(--lang-text-scale, 1) * 0.9);
}
.lang-card-header {
min-height: 2.5rem;
}
}