feat(Translation): enhance product dialogs and update translation model
- Added new translation files for product dialogs to support additional languages. - Refactored various components to utilize translation functions for error messages, labels, and placeholders, enhancing localization support.
This commit is contained in:
@@ -79,7 +79,7 @@ class ArticleAvailabilityForm extends Component {
|
|||||||
} else {
|
} else {
|
||||||
this.setState({
|
this.setState({
|
||||||
loading: false,
|
loading: false,
|
||||||
error: response.error || 'Ein Fehler ist aufgetreten'
|
error: response.error || this.props.t("productDialogs.errorGeneric")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,20 +114,21 @@ class ArticleAvailabilityForm extends Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { name, email, telegramId, notificationMethod, message, loading, success, error } = this.state;
|
const { name, email, telegramId, notificationMethod, message, loading, success, error } = this.state;
|
||||||
|
const { t } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Paper id="availability-form" sx={{ p: 3, mt: 4, borderRadius: 2, boxShadow: "0 2px 8px rgba(0,0,0,0.08)" }}>
|
<Paper id="availability-form" sx={{ p: 3, mt: 4, borderRadius: 2, boxShadow: "0 2px 8px rgba(0,0,0,0.08)" }}>
|
||||||
<Typography variant="h5" gutterBottom sx={{ fontWeight: 600, color: '#333' }}>
|
<Typography variant="h5" gutterBottom sx={{ fontWeight: 600, color: '#333' }}>
|
||||||
Verfügbarkeit anfragen
|
{t("productDialogs.availabilityTitle")}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
<Typography variant="body2" color="text.secondary" sx={{ mb: 3 }}>
|
<Typography variant="body2" color="text.secondary" sx={{ mb: 3 }}>
|
||||||
Dieser Artikel ist derzeit nicht verfügbar. Gerne informieren wir Sie, sobald er wieder lieferbar ist.
|
{t("productDialogs.availabilitySubtitle")}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
{success && (
|
{success && (
|
||||||
<Alert severity="success" sx={{ mb: 3 }}>
|
<Alert severity="success" sx={{ mb: 3 }}>
|
||||||
Vielen Dank für Ihre Anfrage! Wir werden Sie {notificationMethod === 'email' ? 'per E-Mail' : 'über Telegram'} informieren, sobald der Artikel wieder verfügbar ist.
|
{notificationMethod === 'email' ? t("productDialogs.availabilitySuccessEmail") : t("productDialogs.availabilitySuccessTelegram")}
|
||||||
</Alert>
|
</Alert>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
@@ -139,18 +140,18 @@ class ArticleAvailabilityForm extends Component {
|
|||||||
|
|
||||||
<Box component="form" onSubmit={this.handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
<Box component="form" onSubmit={this.handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
||||||
<TextField
|
<TextField
|
||||||
label="Name"
|
label={t("productDialogs.nameLabel")}
|
||||||
value={name}
|
value={name}
|
||||||
onChange={this.handleInputChange('name')}
|
onChange={this.handleInputChange('name')}
|
||||||
required
|
required
|
||||||
fullWidth
|
fullWidth
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
placeholder="Ihr Name"
|
placeholder={t("productDialogs.namePlaceholder")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<FormControl component="fieldset" disabled={loading}>
|
<FormControl component="fieldset" disabled={loading}>
|
||||||
<FormLabel component="legend" sx={{ mb: 1 }}>
|
<FormLabel component="legend" sx={{ mb: 1 }}>
|
||||||
Wie möchten Sie benachrichtigt werden?
|
{t("productDialogs.notificationMethodLabel")}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
<RadioGroup
|
<RadioGroup
|
||||||
value={notificationMethod}
|
value={notificationMethod}
|
||||||
@@ -160,51 +161,51 @@ class ArticleAvailabilityForm extends Component {
|
|||||||
<FormControlLabel
|
<FormControlLabel
|
||||||
value="email"
|
value="email"
|
||||||
control={<Radio />}
|
control={<Radio />}
|
||||||
label="E-Mail"
|
label={t("productDialogs.emailLabel")}
|
||||||
/>
|
/>
|
||||||
<FormControlLabel
|
<FormControlLabel
|
||||||
value="telegram"
|
value="telegram"
|
||||||
control={<Radio />}
|
control={<Radio />}
|
||||||
label="Telegram Bot"
|
label={t("productDialogs.telegramBotLabel")}
|
||||||
/>
|
/>
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
|
|
||||||
{notificationMethod === 'email' && (
|
{notificationMethod === 'email' && (
|
||||||
<TextField
|
<TextField
|
||||||
label="E-Mail"
|
label={t("productDialogs.emailLabel")}
|
||||||
type="email"
|
type="email"
|
||||||
value={email}
|
value={email}
|
||||||
onChange={this.handleInputChange('email')}
|
onChange={this.handleInputChange('email')}
|
||||||
required
|
required
|
||||||
fullWidth
|
fullWidth
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
placeholder="ihre.email@example.com"
|
placeholder={t("productDialogs.emailPlaceholder")}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{notificationMethod === 'telegram' && (
|
{notificationMethod === 'telegram' && (
|
||||||
<TextField
|
<TextField
|
||||||
label="Telegram ID"
|
label={t("productDialogs.telegramIdLabel")}
|
||||||
value={telegramId}
|
value={telegramId}
|
||||||
onChange={this.handleInputChange('telegramId')}
|
onChange={this.handleInputChange('telegramId')}
|
||||||
required
|
required
|
||||||
fullWidth
|
fullWidth
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
placeholder="@IhrTelegramName oder Telegram ID"
|
placeholder={t("productDialogs.telegramPlaceholder")}
|
||||||
helperText="Geben Sie Ihren Telegram-Benutzernamen (mit @) oder Ihre Telegram-ID ein"
|
helperText={t("productDialogs.telegramHelper")}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
label="Nachricht (optional)"
|
label={t("productDialogs.messageLabel")}
|
||||||
value={message}
|
value={message}
|
||||||
onChange={this.handleInputChange('message')}
|
onChange={this.handleInputChange('message')}
|
||||||
fullWidth
|
fullWidth
|
||||||
multiline
|
multiline
|
||||||
rows={3}
|
rows={3}
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
placeholder="Zusätzliche Informationen oder Fragen..."
|
placeholder={t("productDialogs.messagePlaceholder")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
@@ -225,10 +226,10 @@ class ArticleAvailabilityForm extends Component {
|
|||||||
{loading ? (
|
{loading ? (
|
||||||
<>
|
<>
|
||||||
<CircularProgress size={20} sx={{ mr: 1 }} />
|
<CircularProgress size={20} sx={{ mr: 1 }} />
|
||||||
Wird gesendet...
|
{t("productDialogs.sending")}
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
'Verfügbarkeit anfragen'
|
t("productDialogs.submitAvailability")
|
||||||
)}
|
)}
|
||||||
</Button>
|
</Button>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ class ArticleQuestionForm extends Component {
|
|||||||
} else {
|
} else {
|
||||||
this.setState({
|
this.setState({
|
||||||
loading: false,
|
loading: false,
|
||||||
error: response.error || 'Ein Fehler ist aufgetreten'
|
error: response.error || this.props.t("productDialogs.errorGeneric")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ class ArticleQuestionForm extends Component {
|
|||||||
} catch {
|
} catch {
|
||||||
this.setState({
|
this.setState({
|
||||||
loading: false,
|
loading: false,
|
||||||
error: 'Fehler beim Verarbeiten der Fotos'
|
error: this.props.t("productDialogs.errorPhotos")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,20 +140,21 @@ class ArticleQuestionForm extends Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { name, email, question, loading, success, error } = this.state;
|
const { name, email, question, loading, success, error } = this.state;
|
||||||
|
const { t } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Paper sx={{ p: 3, mt: 4, borderRadius: 2, boxShadow: "0 2px 8px rgba(0,0,0,0.08)" }}>
|
<Paper sx={{ p: 3, mt: 4, borderRadius: 2, boxShadow: "0 2px 8px rgba(0,0,0,0.08)" }}>
|
||||||
<Typography variant="h5" gutterBottom sx={{ fontWeight: 600, color: '#333' }}>
|
<Typography variant="h5" gutterBottom sx={{ fontWeight: 600, color: '#333' }}>
|
||||||
Frage zum Artikel
|
{t("productDialogs.questionTitle")}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
<Typography variant="body2" color="text.secondary" sx={{ mb: 3 }}>
|
<Typography variant="body2" color="text.secondary" sx={{ mb: 3 }}>
|
||||||
Haben Sie eine Frage zu diesem Artikel? Wir helfen Ihnen gerne weiter.
|
{t("productDialogs.questionSubtitle")}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
{success && (
|
{success && (
|
||||||
<Alert severity="success" sx={{ mb: 3 }}>
|
<Alert severity="success" sx={{ mb: 3 }}>
|
||||||
Vielen Dank für Ihre Frage! Wir werden uns schnellstmöglich bei Ihnen melden.
|
{t("productDialogs.questionSuccess")}
|
||||||
</Alert>
|
</Alert>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
@@ -165,28 +166,28 @@ class ArticleQuestionForm extends Component {
|
|||||||
|
|
||||||
<Box component="form" onSubmit={this.handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
<Box component="form" onSubmit={this.handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
||||||
<TextField
|
<TextField
|
||||||
label="Name"
|
label={t("productDialogs.nameLabel")}
|
||||||
value={name}
|
value={name}
|
||||||
onChange={this.handleInputChange('name')}
|
onChange={this.handleInputChange('name')}
|
||||||
required
|
required
|
||||||
fullWidth
|
fullWidth
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
placeholder="Ihr Name"
|
placeholder={t("productDialogs.namePlaceholder")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
label="E-Mail"
|
label={t("productDialogs.emailLabel")}
|
||||||
type="email"
|
type="email"
|
||||||
value={email}
|
value={email}
|
||||||
onChange={this.handleInputChange('email')}
|
onChange={this.handleInputChange('email')}
|
||||||
required
|
required
|
||||||
fullWidth
|
fullWidth
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
placeholder="ihre.email@example.com"
|
placeholder={t("productDialogs.emailPlaceholder")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
label="Ihre Frage"
|
label={t("productDialogs.questionLabel")}
|
||||||
value={question}
|
value={question}
|
||||||
onChange={this.handleInputChange('question')}
|
onChange={this.handleInputChange('question')}
|
||||||
required
|
required
|
||||||
@@ -194,7 +195,7 @@ class ArticleQuestionForm extends Component {
|
|||||||
multiline
|
multiline
|
||||||
rows={4}
|
rows={4}
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
placeholder="Beschreiben Sie Ihre Frage zu diesem Artikel..."
|
placeholder={t("productDialogs.questionPlaceholder")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<PhotoUpload
|
<PhotoUpload
|
||||||
@@ -202,7 +203,7 @@ class ArticleQuestionForm extends Component {
|
|||||||
onChange={this.handlePhotosChange}
|
onChange={this.handlePhotosChange}
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
maxFiles={3}
|
maxFiles={3}
|
||||||
label="Fotos zur Frage anhängen (optional)"
|
label={t("productDialogs.photosLabelQuestion")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
@@ -219,10 +220,10 @@ class ArticleQuestionForm extends Component {
|
|||||||
{loading ? (
|
{loading ? (
|
||||||
<>
|
<>
|
||||||
<CircularProgress size={20} sx={{ mr: 1 }} />
|
<CircularProgress size={20} sx={{ mr: 1 }} />
|
||||||
Wird gesendet...
|
{t("productDialogs.sending")}
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
'Frage senden'
|
t("productDialogs.submitQuestion")
|
||||||
)}
|
)}
|
||||||
</Button>
|
</Button>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ class ArticleRatingForm extends Component {
|
|||||||
} else {
|
} else {
|
||||||
this.setState({
|
this.setState({
|
||||||
loading: false,
|
loading: false,
|
||||||
error: response.error || 'Ein Fehler ist aufgetreten'
|
error: response.error || this.props.t("productDialogs.errorGeneric")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ class ArticleRatingForm extends Component {
|
|||||||
} catch {
|
} catch {
|
||||||
this.setState({
|
this.setState({
|
||||||
loading: false,
|
loading: false,
|
||||||
error: 'Fehler beim Verarbeiten der Fotos'
|
error: this.props.t("productDialogs.errorPhotos")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,20 +149,21 @@ class ArticleRatingForm extends Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { name, email, rating, review, loading, success, error } = this.state;
|
const { name, email, rating, review, loading, success, error } = this.state;
|
||||||
|
const { t } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Paper sx={{ p: 3, mt: 4, borderRadius: 2, boxShadow: "0 2px 8px rgba(0,0,0,0.08)" }}>
|
<Paper sx={{ p: 3, mt: 4, borderRadius: 2, boxShadow: "0 2px 8px rgba(0,0,0,0.08)" }}>
|
||||||
<Typography variant="h5" gutterBottom sx={{ fontWeight: 600, color: '#333' }}>
|
<Typography variant="h5" gutterBottom sx={{ fontWeight: 600, color: '#333' }}>
|
||||||
Artikel Bewerten
|
{t("productDialogs.ratingTitle")}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
<Typography variant="body2" color="text.secondary" sx={{ mb: 3 }}>
|
<Typography variant="body2" color="text.secondary" sx={{ mb: 3 }}>
|
||||||
Teilen Sie Ihre Erfahrungen mit diesem Artikel und helfen Sie anderen Kunden bei der Entscheidung.
|
{t("productDialogs.ratingSubtitle")}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
{success && (
|
{success && (
|
||||||
<Alert severity="success" sx={{ mb: 3 }}>
|
<Alert severity="success" sx={{ mb: 3 }}>
|
||||||
Vielen Dank für Ihre Bewertung! Sie wird nach Prüfung veröffentlicht.
|
{t("productDialogs.ratingSuccess")}
|
||||||
</Alert>
|
</Alert>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
@@ -174,30 +175,30 @@ class ArticleRatingForm extends Component {
|
|||||||
|
|
||||||
<Box component="form" onSubmit={this.handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
<Box component="form" onSubmit={this.handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>
|
||||||
<TextField
|
<TextField
|
||||||
label="Name"
|
label={t("productDialogs.nameLabel")}
|
||||||
value={name}
|
value={name}
|
||||||
onChange={this.handleInputChange('name')}
|
onChange={this.handleInputChange('name')}
|
||||||
required
|
required
|
||||||
fullWidth
|
fullWidth
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
placeholder="Ihr Name"
|
placeholder={t("productDialogs.namePlaceholder")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
label="E-Mail"
|
label={t("productDialogs.emailLabel")}
|
||||||
type="email"
|
type="email"
|
||||||
value={email}
|
value={email}
|
||||||
onChange={this.handleInputChange('email')}
|
onChange={this.handleInputChange('email')}
|
||||||
required
|
required
|
||||||
fullWidth
|
fullWidth
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
placeholder="ihre.email@example.com"
|
placeholder={t("productDialogs.emailPlaceholder")}
|
||||||
helperText="Ihre E-Mail wird nicht veröffentlicht"
|
helperText={t("productDialogs.emailHelper")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}>
|
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}>
|
||||||
<Typography variant="body2" sx={{ fontWeight: 500 }}>
|
<Typography variant="body2" sx={{ fontWeight: 500 }}>
|
||||||
Bewertung *
|
{t("productDialogs.ratingLabel")}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
|
||||||
<Rating
|
<Rating
|
||||||
@@ -209,20 +210,20 @@ class ArticleRatingForm extends Component {
|
|||||||
emptyIcon={<StarIcon style={{ opacity: 0.55 }} fontSize="inherit" />}
|
emptyIcon={<StarIcon style={{ opacity: 0.55 }} fontSize="inherit" />}
|
||||||
/>
|
/>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{rating > 0 ? `${rating} von 5 Sternen` : 'Bitte bewerten'}
|
{rating > 0 ? t("productDialogs.ratingStars", { rating }) : t("productDialogs.pleaseRate")}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
label="Ihre Bewertung (optional)"
|
label={t("productDialogs.reviewLabel")}
|
||||||
value={review}
|
value={review}
|
||||||
onChange={this.handleInputChange('review')}
|
onChange={this.handleInputChange('review')}
|
||||||
fullWidth
|
fullWidth
|
||||||
multiline
|
multiline
|
||||||
rows={4}
|
rows={4}
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
placeholder="Beschreiben Sie Ihre Erfahrungen mit diesem Artikel..."
|
placeholder={t("productDialogs.reviewPlaceholder")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<PhotoUpload
|
<PhotoUpload
|
||||||
@@ -230,7 +231,7 @@ class ArticleRatingForm extends Component {
|
|||||||
onChange={this.handlePhotosChange}
|
onChange={this.handlePhotosChange}
|
||||||
disabled={loading}
|
disabled={loading}
|
||||||
maxFiles={5}
|
maxFiles={5}
|
||||||
label="Fotos zur Bewertung anhängen (optional)"
|
label={t("productDialogs.photosLabelRating")}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
@@ -247,10 +248,10 @@ class ArticleRatingForm extends Component {
|
|||||||
{loading ? (
|
{loading ? (
|
||||||
<>
|
<>
|
||||||
<CircularProgress size={20} sx={{ mr: 1 }} />
|
<CircularProgress size={20} sx={{ mr: 1 }} />
|
||||||
Wird gesendet...
|
{t("productDialogs.sending")}
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
'Bewertung abgeben'
|
t("productDialogs.submitRating")
|
||||||
)}
|
)}
|
||||||
</Button>
|
</Button>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import {
|
|||||||
} from '@mui/material';
|
} from '@mui/material';
|
||||||
import Delete from '@mui/icons-material/Delete';
|
import Delete from '@mui/icons-material/Delete';
|
||||||
import CloudUpload from '@mui/icons-material/CloudUpload';
|
import CloudUpload from '@mui/icons-material/CloudUpload';
|
||||||
|
import { withI18n } from '../i18n/withTranslation.js';
|
||||||
|
|
||||||
class PhotoUpload extends Component {
|
class PhotoUpload extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@@ -30,7 +31,7 @@ class PhotoUpload extends Component {
|
|||||||
// Validate file count
|
// Validate file count
|
||||||
if (this.state.files.length + selectedFiles.length > maxFiles) {
|
if (this.state.files.length + selectedFiles.length > maxFiles) {
|
||||||
this.setState({
|
this.setState({
|
||||||
error: `Maximal ${maxFiles} Dateien erlaubt`
|
error: this.props.t("productDialogs.photoUploadErrorMaxFiles", { max: maxFiles })
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -43,14 +44,14 @@ class PhotoUpload extends Component {
|
|||||||
for (const file of selectedFiles) {
|
for (const file of selectedFiles) {
|
||||||
if (!validTypes.includes(file.type)) {
|
if (!validTypes.includes(file.type)) {
|
||||||
this.setState({
|
this.setState({
|
||||||
error: 'Nur Bilddateien (JPEG, PNG, GIF, WebP) sind erlaubt'
|
error: this.props.t("productDialogs.photoUploadErrorFileType")
|
||||||
});
|
});
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file.size > maxSize) {
|
if (file.size > maxSize) {
|
||||||
this.setState({
|
this.setState({
|
||||||
error: `Datei zu groß. Maximum: ${Math.round(maxSize / (1024 * 1024))}MB`
|
error: this.props.t("productDialogs.photoUploadErrorFileSize", { maxSize: Math.round(maxSize / (1024 * 1024)) })
|
||||||
});
|
});
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -167,12 +168,12 @@ class PhotoUpload extends Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { files, previews, error } = this.state;
|
const { files, previews, error } = this.state;
|
||||||
const { disabled, label } = this.props;
|
const { disabled, label, t } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Box>
|
<Box>
|
||||||
<Typography variant="body2" sx={{ mb: 1, fontWeight: 500 }}>
|
<Typography variant="body2" sx={{ mb: 1, fontWeight: 500 }}>
|
||||||
{label || 'Fotos anhängen (optional)'}
|
{label || t("productDialogs.photoUploadLabelDefault")}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
<input
|
<input
|
||||||
@@ -192,7 +193,7 @@ class PhotoUpload extends Component {
|
|||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
sx={{ mb: 2 }}
|
sx={{ mb: 2 }}
|
||||||
>
|
>
|
||||||
Fotos auswählen
|
{t("productDialogs.photoUploadSelect")}
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
{error && (
|
{error && (
|
||||||
@@ -228,7 +229,7 @@ class PhotoUpload extends Component {
|
|||||||
size="small"
|
size="small"
|
||||||
onClick={() => this.handleRemoveFile(index)}
|
onClick={() => this.handleRemoveFile(index)}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
aria-label="Bild entfernen"
|
aria-label={t("productDialogs.photoUploadRemove")}
|
||||||
sx={{
|
sx={{
|
||||||
position: 'absolute',
|
position: 'absolute',
|
||||||
top: 4,
|
top: 4,
|
||||||
@@ -269,10 +270,10 @@ class PhotoUpload extends Component {
|
|||||||
|
|
||||||
{files.length > 0 && (
|
{files.length > 0 && (
|
||||||
<Typography variant="caption" color="text.secondary" sx={{ mt: 1, display: 'block' }}>
|
<Typography variant="caption" color="text.secondary" sx={{ mt: 1, display: 'block' }}>
|
||||||
{files.length} Datei(en) ausgewählt
|
{t("productDialogs.photoUploadSelectedFiles", { count: files.length })}
|
||||||
{previews.length > 0 && previews.some(p => p.originalSize && p.compressedSize) && (
|
{previews.length > 0 && previews.some(p => p.originalSize && p.compressedSize) && (
|
||||||
<span style={{ marginLeft: '8px' }}>
|
<span style={{ marginLeft: '8px' }}>
|
||||||
(komprimiert für Upload)
|
{t("productDialogs.photoUploadCompressed")}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
</Typography>
|
</Typography>
|
||||||
@@ -282,4 +283,4 @@ class PhotoUpload extends Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default PhotoUpload;
|
export default withI18n()(PhotoUpload);
|
||||||
@@ -762,7 +762,7 @@ class ProductDetailPage extends Component {
|
|||||||
handleEmbedShare = () => {
|
handleEmbedShare = () => {
|
||||||
const embedCode = `<iframe src="${this.getProductUrl()}" width="100%" height="600" frameborder="0"></iframe>`;
|
const embedCode = `<iframe src="${this.getProductUrl()}" width="100%" height="600" frameborder="0"></iframe>`;
|
||||||
navigator.clipboard.writeText(embedCode).then(() => {
|
navigator.clipboard.writeText(embedCode).then(() => {
|
||||||
this.showSnackbar("Einbettungscode wurde in die Zwischenablage kopiert!");
|
this.showSnackbar(this.props.t ? this.props.t("productDialogs.shareSuccessEmbed") : "Einbettungscode wurde in die Zwischenablage kopiert!");
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
// Fallback for older browsers
|
// Fallback for older browsers
|
||||||
try {
|
try {
|
||||||
@@ -772,9 +772,9 @@ class ProductDetailPage extends Component {
|
|||||||
textArea.select();
|
textArea.select();
|
||||||
document.execCommand('copy');
|
document.execCommand('copy');
|
||||||
document.body.removeChild(textArea);
|
document.body.removeChild(textArea);
|
||||||
this.showSnackbar("Einbettungscode wurde in die Zwischenablage kopiert!");
|
this.showSnackbar(this.props.t ? this.props.t("productDialogs.shareSuccessEmbed") : "Einbettungscode wurde in die Zwischenablage kopiert!");
|
||||||
} catch {
|
} catch {
|
||||||
this.showSnackbar("Fehler beim Kopieren des Einbettungscodes", "error");
|
this.showSnackbar(this.props.t ? this.props.t("productDialogs.shareErrorEmbed") : "Fehler beim Kopieren des Einbettungscodes", "error");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.handleShareClose();
|
this.handleShareClose();
|
||||||
@@ -782,7 +782,10 @@ class ProductDetailPage extends Component {
|
|||||||
|
|
||||||
handleWhatsAppShare = () => {
|
handleWhatsAppShare = () => {
|
||||||
const url = this.getProductUrl();
|
const url = this.getProductUrl();
|
||||||
const text = `Schau dir dieses Produkt an: ${cleanProductName(this.state.product.name)}`;
|
const productName = cleanProductName(this.state.product.name);
|
||||||
|
const text = this.props.t
|
||||||
|
? this.props.t("productDialogs.shareWhatsAppText", { name: productName })
|
||||||
|
: `Schau dir dieses Produkt an: ${productName}`;
|
||||||
const whatsappUrl = `https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`;
|
const whatsappUrl = `https://wa.me/?text=${encodeURIComponent(text + ' ' + url)}`;
|
||||||
window.open(whatsappUrl, '_blank');
|
window.open(whatsappUrl, '_blank');
|
||||||
this.handleShareClose();
|
this.handleShareClose();
|
||||||
@@ -797,7 +800,10 @@ class ProductDetailPage extends Component {
|
|||||||
|
|
||||||
handleTelegramShare = () => {
|
handleTelegramShare = () => {
|
||||||
const url = this.getProductUrl();
|
const url = this.getProductUrl();
|
||||||
const text = `Schau dir dieses Produkt an: ${cleanProductName(this.state.product.name)}`;
|
const productName = cleanProductName(this.state.product.name);
|
||||||
|
const text = this.props.t
|
||||||
|
? this.props.t("productDialogs.shareTelegramText", { name: productName })
|
||||||
|
: `Schau dir dieses Produkt an: ${productName}`;
|
||||||
const telegramUrl = `https://t.me/share/url?url=${encodeURIComponent(url)}&text=${encodeURIComponent(text)}`;
|
const telegramUrl = `https://t.me/share/url?url=${encodeURIComponent(url)}&text=${encodeURIComponent(text)}`;
|
||||||
window.open(telegramUrl, '_blank');
|
window.open(telegramUrl, '_blank');
|
||||||
this.handleShareClose();
|
this.handleShareClose();
|
||||||
@@ -805,8 +811,18 @@ class ProductDetailPage extends Component {
|
|||||||
|
|
||||||
handleEmailShare = () => {
|
handleEmailShare = () => {
|
||||||
const url = this.getProductUrl();
|
const url = this.getProductUrl();
|
||||||
const subject = `Produktempfehlung: ${cleanProductName(this.state.product.name)}`;
|
const productName = cleanProductName(this.state.product.name);
|
||||||
const body = `Hallo,\n\nich möchte dir dieses Produkt empfehlen:\n\n${cleanProductName(this.state.product.name)}\n${url}\n\nViele Grüße`;
|
const subject = this.props.t
|
||||||
|
? `${this.props.t("productDialogs.shareEmailSubject")}: ${productName}`
|
||||||
|
: `Produktempfehlung: ${productName}`;
|
||||||
|
|
||||||
|
const body = this.props.t
|
||||||
|
? this.props.t("productDialogs.shareEmailBody", {
|
||||||
|
name: productName,
|
||||||
|
url: url
|
||||||
|
})
|
||||||
|
: `Hallo,\n\nich möchte dir dieses Produkt empfehlen:\n\n${productName}\n${url}\n\nViele Grüße`;
|
||||||
|
|
||||||
const emailUrl = `mailto:?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
|
const emailUrl = `mailto:?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
|
||||||
window.location.href = emailUrl;
|
window.location.href = emailUrl;
|
||||||
this.handleShareClose();
|
this.handleShareClose();
|
||||||
@@ -815,7 +831,7 @@ class ProductDetailPage extends Component {
|
|||||||
handleLinkCopy = () => {
|
handleLinkCopy = () => {
|
||||||
const url = this.getProductUrl();
|
const url = this.getProductUrl();
|
||||||
navigator.clipboard.writeText(url).then(() => {
|
navigator.clipboard.writeText(url).then(() => {
|
||||||
this.showSnackbar("Link wurde in die Zwischenablage kopiert!");
|
this.showSnackbar(this.props.t ? this.props.t("productDialogs.shareSuccessLink") : "Link wurde in die Zwischenablage kopiert!");
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
// Fallback for older browsers
|
// Fallback for older browsers
|
||||||
try {
|
try {
|
||||||
@@ -825,7 +841,7 @@ class ProductDetailPage extends Component {
|
|||||||
textArea.select();
|
textArea.select();
|
||||||
document.execCommand('copy');
|
document.execCommand('copy');
|
||||||
document.body.removeChild(textArea);
|
document.body.removeChild(textArea);
|
||||||
this.showSnackbar("Link wurde in die Zwischenablage kopiert!");
|
this.showSnackbar(this.props.t ? this.props.t("productDialogs.shareSuccessLink") : "Link wurde in die Zwischenablage kopiert!");
|
||||||
} catch {
|
} catch {
|
||||||
this.showSnackbar("Fehler beim Kopieren des Links", "error");
|
this.showSnackbar("Fehler beim Kopieren des Links", "error");
|
||||||
}
|
}
|
||||||
@@ -968,7 +984,7 @@ class ProductDetailPage extends Component {
|
|||||||
}).format(productData.price)}
|
}).format(productData.price)}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="caption" color="text.secondary">
|
<Typography variant="caption" color="text.secondary">
|
||||||
inkl. MwSt.
|
{this.props.t ? this.props.t('product.inclVatSimple') : 'inkl. MwSt.'}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
@@ -1331,7 +1347,7 @@ class ProductDetailPage extends Component {
|
|||||||
whiteSpace: "nowrap"
|
whiteSpace: "nowrap"
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Frage zum Artikel
|
{this.props.t ? this.props.t('productDialogs.questionTitle') : "Frage zum Artikel"}
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
@@ -1345,7 +1361,7 @@ class ProductDetailPage extends Component {
|
|||||||
whiteSpace: "nowrap"
|
whiteSpace: "nowrap"
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Artikel Bewerten
|
{this.props.t ? this.props.t('productDialogs.ratingTitle') : "Artikel Bewerten"}
|
||||||
</Button>
|
</Button>
|
||||||
{(product.available !== 1 && product.availableSupplier !== 1) && (
|
{(product.available !== 1 && product.availableSupplier !== 1) && (
|
||||||
<Button
|
<Button
|
||||||
@@ -1366,7 +1382,7 @@ class ProductDetailPage extends Component {
|
|||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Verfügbarkeit anfragen
|
{this.props.t ? this.props.t('productDialogs.availabilityTitle') : "Verfügbarkeit anfragen"}
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
</Stack>
|
</Stack>
|
||||||
@@ -1595,7 +1611,7 @@ class ProductDetailPage extends Component {
|
|||||||
}}
|
}}
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
Teilen
|
{this.props.t ? this.props.t("productDialogs.shareTitle") : "Teilen"}
|
||||||
</Button>
|
</Button>
|
||||||
<Box
|
<Box
|
||||||
sx={{
|
sx={{
|
||||||
@@ -1669,7 +1685,7 @@ class ProductDetailPage extends Component {
|
|||||||
<ListItemIcon>
|
<ListItemIcon>
|
||||||
<CodeIcon fontSize="small" />
|
<CodeIcon fontSize="small" />
|
||||||
</ListItemIcon>
|
</ListItemIcon>
|
||||||
<ListItemText primary="Einbetten" />
|
<ListItemText primary={this.props.t ? this.props.t("productDialogs.shareEmbed") : "Einbetten"} />
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem onClick={this.handleWhatsAppShare}>
|
<MenuItem onClick={this.handleWhatsAppShare}>
|
||||||
<ListItemIcon>
|
<ListItemIcon>
|
||||||
@@ -1699,7 +1715,7 @@ class ProductDetailPage extends Component {
|
|||||||
<ListItemIcon>
|
<ListItemIcon>
|
||||||
<LinkIcon fontSize="small" />
|
<LinkIcon fontSize="small" />
|
||||||
</ListItemIcon>
|
</ListItemIcon>
|
||||||
<ListItemText primary="Link kopieren" />
|
<ListItemText primary={this.props.t ? this.props.t("productDialogs.shareCopyLink") : "Link kopieren"} />
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</MenuList>
|
</MenuList>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -5,9 +5,10 @@ export default {
|
|||||||
"notFoundDescription": "المنتج الذي تبحث عنه غير موجود أو تم إزالته.",
|
"notFoundDescription": "المنتج الذي تبحث عنه غير موجود أو تم إزالته.",
|
||||||
"backToHome": "العودة إلى الصفحة الرئيسية",
|
"backToHome": "العودة إلى الصفحة الرئيسية",
|
||||||
"error": "خطأ",
|
"error": "خطأ",
|
||||||
"articleNumber": "رقم الصنف",
|
"articleNumber": "رقم المنتج",
|
||||||
"manufacturer": "الشركة المصنعة",
|
"manufacturer": "الشركة المصنعة",
|
||||||
"inclVat": "شامل {{vat}}% ضريبة القيمة المضافة",
|
"inclVat": "شامل {{vat}}% ضريبة القيمة المضافة",
|
||||||
|
"inclVatSimple": "شامل ضريبة القيمة المضافة",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "جديد",
|
"new": "جديد",
|
||||||
"weeks": "أسابيع",
|
"weeks": "أسابيع",
|
||||||
@@ -15,7 +16,7 @@ export default {
|
|||||||
"inclVatFooter": "شامل {{vat}}% ضريبة القيمة المضافة,*",
|
"inclVatFooter": "شامل {{vat}}% ضريبة القيمة المضافة,*",
|
||||||
"availability": "التوفر",
|
"availability": "التوفر",
|
||||||
"inStock": "متوفر في المخزون",
|
"inStock": "متوفر في المخزون",
|
||||||
"comingSoon": "قريبًا متوفر",
|
"comingSoon": "قريبًا",
|
||||||
"deliveryTime": "مدة التوصيل",
|
"deliveryTime": "مدة التوصيل",
|
||||||
"inclShort": "شامل",
|
"inclShort": "شامل",
|
||||||
"vatShort": "ضريبة القيمة المضافة",
|
"vatShort": "ضريبة القيمة المضافة",
|
||||||
@@ -32,10 +33,10 @@ export default {
|
|||||||
"similarProducts": "منتجات مشابهة",
|
"similarProducts": "منتجات مشابهة",
|
||||||
"countDisplay": {
|
"countDisplay": {
|
||||||
"noProducts": "0 منتجات",
|
"noProducts": "0 منتجات",
|
||||||
"oneProduct": "منتج واحد",
|
"oneProduct": "1 منتج",
|
||||||
"multipleProducts": "{{count}} منتجات",
|
"multipleProducts": "{{count}} منتجات",
|
||||||
"filteredProducts": "{{filtered}} من {{total}} منتجات",
|
"filteredProducts": "{{filtered}} من {{total}} منتجات",
|
||||||
"filteredOneProduct": "{{filtered}} من منتج واحد",
|
"filteredOneProduct": "{{filtered}} من 1 منتج",
|
||||||
"xOfYProducts": "{{x}} من {{y}} منتجات"
|
"xOfYProducts": "{{x}} من {{y}} منتجات"
|
||||||
},
|
},
|
||||||
"removeFiltersToSee": "قم بإزالة الفلاتر لرؤية المنتجات",
|
"removeFiltersToSee": "قم بإزالة الفلاتر لرؤية المنتجات",
|
||||||
|
|||||||
61
src/i18n/locales/ar/productDialogs.js
Normal file
61
src/i18n/locales/ar/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "سؤال عن المنتج",
|
||||||
|
"questionSubtitle": "هل لديك سؤال عن هذا المنتج؟ نحن سعداء بمساعدتك.",
|
||||||
|
"questionSuccess": "شكرًا على سؤالك! سنرد عليك في أقرب وقت ممكن.",
|
||||||
|
"nameLabel": "الاسم",
|
||||||
|
"namePlaceholder": "اسمك",
|
||||||
|
"emailLabel": "البريد الإلكتروني",
|
||||||
|
"emailPlaceholder": "your.email@example.com",
|
||||||
|
"questionLabel": "سؤالك",
|
||||||
|
"questionPlaceholder": "صف سؤالك عن هذا المنتج...",
|
||||||
|
"photosLabelQuestion": "أرفق صورًا مع سؤالك (اختياري)",
|
||||||
|
"submitQuestion": "إرسال السؤال",
|
||||||
|
"sending": "جارٍ الإرسال...",
|
||||||
|
|
||||||
|
"ratingTitle": "قيم المنتج",
|
||||||
|
"ratingSubtitle": "شارك تجربتك مع هذا المنتج وساعد العملاء الآخرين في اتخاذ قرارهم.",
|
||||||
|
"ratingSuccess": "شكرًا على تقييمك! سيتم نشره بعد المراجعة.",
|
||||||
|
"emailHelper": "لن يتم نشر بريدك الإلكتروني",
|
||||||
|
"ratingLabel": "التقييم *",
|
||||||
|
"pleaseRate": "يرجى التقييم",
|
||||||
|
"ratingStars": "{{rating}} من 5 نجوم",
|
||||||
|
"reviewLabel": "تقييمك (اختياري)",
|
||||||
|
"reviewPlaceholder": "صف تجاربك مع هذا المنتج...",
|
||||||
|
"photosLabelRating": "أرفق صورًا مع تقييمك (اختياري)",
|
||||||
|
"submitRating": "إرسال التقييم",
|
||||||
|
"errorGeneric": "حدث خطأ",
|
||||||
|
"errorPhotos": "خطأ في معالجة الصور",
|
||||||
|
|
||||||
|
"availabilityTitle": "طلب التوفر",
|
||||||
|
"availabilitySubtitle": "هذا المنتج غير متوفر حاليًا. سنكون سعداء بإبلاغك بمجرد عودته للمخزون.",
|
||||||
|
"availabilitySuccessEmail": "شكرًا على طلبك! سنخطرك عبر البريد الإلكتروني بمجرد توفر المنتج مرة أخرى.",
|
||||||
|
"availabilitySuccessTelegram": "شكرًا على طلبك! سنخطرك عبر تيليجرام بمجرد توفر المنتج مرة أخرى.",
|
||||||
|
"notificationMethodLabel": "كيف تود أن يتم إعلامك؟",
|
||||||
|
"telegramBotLabel": "بوت تيليجرام",
|
||||||
|
"telegramIdLabel": "معرف تيليجرام",
|
||||||
|
"telegramPlaceholder": "@اسمكعلىتيليجرام أو معرف تيليجرام",
|
||||||
|
"telegramHelper": "أدخل اسم المستخدم الخاص بك على تيليجرام (مع @) أو معرف تيليجرام",
|
||||||
|
"messageLabel": "رسالة (اختياري)",
|
||||||
|
"messagePlaceholder": "معلومات إضافية أو أسئلة...",
|
||||||
|
"submitAvailability": "طلب التوفر",
|
||||||
|
|
||||||
|
"photoUploadSelect": "اختر الصور",
|
||||||
|
"photoUploadErrorMaxFiles": "الحد الأقصى {{max}} ملفات مسموح بها",
|
||||||
|
"photoUploadErrorFileType": "مسموح فقط بملفات الصور (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "الملف كبير جدًا. الحد الأقصى: {{maxSize}} ميجابايت",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} ملف(ملفات) مختارة",
|
||||||
|
"photoUploadCompressed": "(تم الضغط للرفع)",
|
||||||
|
"photoUploadRemove": "إزالة الصورة",
|
||||||
|
"photoUploadLabelDefault": "أرفق صورًا (اختياري)",
|
||||||
|
|
||||||
|
"shareTitle": "مشاركة",
|
||||||
|
"shareEmbed": "تضمين",
|
||||||
|
"shareCopyLink": "نسخ الرابط",
|
||||||
|
"shareSuccessEmbed": "تم نسخ كود التضمين إلى الحافظة!",
|
||||||
|
"shareErrorEmbed": "حدث خطأ أثناء نسخ كود التضمين",
|
||||||
|
"shareSuccessLink": "تم نسخ الرابط إلى الحافظة!",
|
||||||
|
"shareWhatsAppText": "شوف المنتج ده: {{name}}",
|
||||||
|
"shareTelegramText": "شوف المنتج ده: {{name}}",
|
||||||
|
"shareEmailSubject": "توصية بمنتج",
|
||||||
|
"shareEmailBody": "مرحبًا،\n\nحابب أوصي لك بالمنتج ده:\n\n{{name}}\n{{url}}\n\nمع أطيب التحيات"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,24 +8,25 @@ export default {
|
|||||||
"articleNumber": "Номер на артикул",
|
"articleNumber": "Номер на артикул",
|
||||||
"manufacturer": "Производител",
|
"manufacturer": "Производител",
|
||||||
"inclVat": "вкл. {{vat}}% ДДС",
|
"inclVat": "вкл. {{vat}}% ДДС",
|
||||||
|
"inclVatSimple": "вкл. ДДС",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Нов",
|
"new": "Нов",
|
||||||
"weeks": "седмици",
|
"weeks": "Седмици",
|
||||||
"arriving": "Пристигане:",
|
"arriving": "Пристигане:",
|
||||||
"inclVatFooter": "вкл. {{vat}}% ДДС,*",
|
"inclVatFooter": "вкл. {{vat}}% ДДС,*",
|
||||||
"availability": "Наличност",
|
"availability": "Наличност",
|
||||||
"inStock": "налично",
|
"inStock": "налично на склад",
|
||||||
"comingSoon": "Очаква се скоро",
|
"comingSoon": "Очаква се скоро",
|
||||||
"deliveryTime": "Срок на доставка",
|
"deliveryTime": "Срок на доставка",
|
||||||
"inclShort": "вкл.",
|
"inclShort": "вкл.",
|
||||||
"vatShort": "ДДС",
|
"vatShort": "ДДС",
|
||||||
"weight": "Тегло: {{weight}} кг",
|
"weight": "Тегло: {{weight}} кг",
|
||||||
"youSave": "Спестявате: {{amount}}",
|
"youSave": "Спестявате: {{amount}}",
|
||||||
"cheaperThanIndividual": "По-евтино от индивидуална покупка",
|
"cheaperThanIndividual": "По-евтино от закупуване поотделно",
|
||||||
"pickupPrice": "Цена за вземане: 19,90 € на резник.",
|
"pickupPrice": "Цена за вземане: 19,90 € на резник.",
|
||||||
"consistsOf": "Състои се от:",
|
"consistsOf": "Състои се от:",
|
||||||
"loadingComponentDetails": "{{index}}. Зареждане на детайли за компонента...",
|
"loadingComponentDetails": "{{index}}. Зареждане на детайли за компонента...",
|
||||||
"loadingProduct": "Продуктът се зарежда...",
|
"loadingProduct": "Зареждане на продукта...",
|
||||||
"individualPriceTotal": "Обща индивидуална цена:",
|
"individualPriceTotal": "Обща индивидуална цена:",
|
||||||
"setPrice": "Цена на комплекта:",
|
"setPrice": "Цена на комплекта:",
|
||||||
"yourSavings": "Вашите спестявания:",
|
"yourSavings": "Вашите спестявания:",
|
||||||
|
|||||||
61
src/i18n/locales/bg/productDialogs.js
Normal file
61
src/i18n/locales/bg/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Въпрос за продукта",
|
||||||
|
"questionSubtitle": "Имате ли въпрос за този продукт? Ще се радваме да ви помогнем.",
|
||||||
|
"questionSuccess": "Благодарим ви за въпроса! Ще се свържем с вас възможно най-скоро.",
|
||||||
|
"nameLabel": "Име",
|
||||||
|
"namePlaceholder": "Вашето име",
|
||||||
|
"emailLabel": "Имейл",
|
||||||
|
"emailPlaceholder": "your.email@example.com",
|
||||||
|
"questionLabel": "Вашият въпрос",
|
||||||
|
"questionPlaceholder": "Опишете въпроса си за този продукт...",
|
||||||
|
"photosLabelQuestion": "Прикачете снимки към въпроса си (по избор)",
|
||||||
|
"submitQuestion": "Изпрати въпроса",
|
||||||
|
"sending": "Изпращане...",
|
||||||
|
|
||||||
|
"ratingTitle": "Оценете продукта",
|
||||||
|
"ratingSubtitle": "Споделете опита си с този продукт и помогнете на други клиенти да вземат решение.",
|
||||||
|
"ratingSuccess": "Благодарим ви за вашия отзив! Той ще бъде публикуван след проверка.",
|
||||||
|
"emailHelper": "Вашият имейл няма да бъде публикуван",
|
||||||
|
"ratingLabel": "Оценка *",
|
||||||
|
"pleaseRate": "Моля, оценете",
|
||||||
|
"ratingStars": "{{rating}} от 5 звезди",
|
||||||
|
"reviewLabel": "Вашият отзив (по избор)",
|
||||||
|
"reviewPlaceholder": "Опишете опита си с този продукт...",
|
||||||
|
"photosLabelRating": "Прикачете снимки към отзива си (по избор)",
|
||||||
|
"submitRating": "Изпрати отзива",
|
||||||
|
"errorGeneric": "Възникна грешка",
|
||||||
|
"errorPhotos": "Грешка при обработка на снимките",
|
||||||
|
|
||||||
|
"availabilityTitle": "Запитване за наличност",
|
||||||
|
"availabilitySubtitle": "Този продукт в момента не е наличен. Ще се радваме да ви уведомим веднага щом бъде наличен отново.",
|
||||||
|
"availabilitySuccessEmail": "Благодарим ви за запитването! Ще ви уведомим по имейл веднага щом продуктът отново е наличен.",
|
||||||
|
"availabilitySuccessTelegram": "Благодарим ви за запитването! Ще ви уведомим чрез Telegram веднага щом продуктът отново е наличен.",
|
||||||
|
"notificationMethodLabel": "Как бихте искали да бъдете уведомени?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@yourTelegramName or Telegram ID",
|
||||||
|
"telegramHelper": "Въведете вашето потребителско име в Telegram (с @) или Telegram ID",
|
||||||
|
"messageLabel": "Съобщение (по избор)",
|
||||||
|
"messagePlaceholder": "Допълнителна информация или въпроси...",
|
||||||
|
"submitAvailability": "Запитване за наличност",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Изберете снимки",
|
||||||
|
"photoUploadErrorMaxFiles": "Максимум {{max}} файла са разрешени",
|
||||||
|
"photoUploadErrorFileType": "Разрешени са само файлове с изображения (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Файлът е твърде голям. Максимум: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} файл(ове) избрани",
|
||||||
|
"photoUploadCompressed": "(компресиран за качване)",
|
||||||
|
"photoUploadRemove": "Премахни изображението",
|
||||||
|
"photoUploadLabelDefault": "Прикачи снимки (по избор)",
|
||||||
|
|
||||||
|
"shareTitle": "Сподели",
|
||||||
|
"shareEmbed": "Вграждане",
|
||||||
|
"shareCopyLink": "Копирай линка",
|
||||||
|
"shareSuccessEmbed": "Кодът за вграждане е копиран в клипборда!",
|
||||||
|
"shareErrorEmbed": "Грешка при копиране на кода за вграждане",
|
||||||
|
"shareSuccessLink": "Линкът е копиран в клипборда!",
|
||||||
|
"shareWhatsAppText": "Виж този продукт: {{name}}",
|
||||||
|
"shareTelegramText": "Виж този продукт: {{name}}",
|
||||||
|
"shareEmailSubject": "Препоръка за продукт",
|
||||||
|
"shareEmailBody": "Здравейте,\n\nИскам да ви препоръчам този продукт:\n\n{{name}}\n{{url}}\n\nПоздрави"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,10 +8,11 @@ export default {
|
|||||||
"articleNumber": "Číslo artiklu",
|
"articleNumber": "Číslo artiklu",
|
||||||
"manufacturer": "Výrobce",
|
"manufacturer": "Výrobce",
|
||||||
"inclVat": "včetně {{vat}}% DPH",
|
"inclVat": "včetně {{vat}}% DPH",
|
||||||
|
"inclVatSimple": "včetně DPH",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Nové",
|
"new": "Nové",
|
||||||
"weeks": "týdny",
|
"weeks": "Týdny",
|
||||||
"arriving": "Příchod:",
|
"arriving": "Příjezd:",
|
||||||
"inclVatFooter": "včetně {{vat}}% DPH,*",
|
"inclVatFooter": "včetně {{vat}}% DPH,*",
|
||||||
"availability": "Dostupnost",
|
"availability": "Dostupnost",
|
||||||
"inStock": "skladem",
|
"inStock": "skladem",
|
||||||
@@ -22,10 +23,10 @@ export default {
|
|||||||
"weight": "Hmotnost: {{weight}} kg",
|
"weight": "Hmotnost: {{weight}} kg",
|
||||||
"youSave": "Ušetříte: {{amount}}",
|
"youSave": "Ušetříte: {{amount}}",
|
||||||
"cheaperThanIndividual": "Levnější než nákup jednotlivě",
|
"cheaperThanIndividual": "Levnější než nákup jednotlivě",
|
||||||
"pickupPrice": "Cena za vyzvednutí: 19,90 € za řízek.",
|
"pickupPrice": "Cena za odběr: 19,90 € za řízek.",
|
||||||
"consistsOf": "Skládá se z:",
|
"consistsOf": "Skládá se z:",
|
||||||
"loadingComponentDetails": "{{index}}. Načítání detailů komponenty...",
|
"loadingComponentDetails": "{{index}}. Načítání detailů komponenty...",
|
||||||
"loadingProduct": "Produkt se načítá...",
|
"loadingProduct": "Načítání produktu...",
|
||||||
"individualPriceTotal": "Celková cena jednotlivě:",
|
"individualPriceTotal": "Celková cena jednotlivě:",
|
||||||
"setPrice": "Cena sady:",
|
"setPrice": "Cena sady:",
|
||||||
"yourSavings": "Vaše úspory:",
|
"yourSavings": "Vaše úspory:",
|
||||||
|
|||||||
61
src/i18n/locales/cs/productDialogs.js
Normal file
61
src/i18n/locales/cs/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Otázka ohledně produktu",
|
||||||
|
"questionSubtitle": "Máte otázku ohledně tohoto produktu? Rádi vám pomůžeme.",
|
||||||
|
"questionSuccess": "Děkujeme za vaši otázku! Ozveme se vám co nejdříve.",
|
||||||
|
"nameLabel": "Jméno",
|
||||||
|
"namePlaceholder": "Vaše jméno",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "vas.email@priklad.cz",
|
||||||
|
"questionLabel": "Vaše otázka",
|
||||||
|
"questionPlaceholder": "Popište svou otázku ohledně tohoto produktu...",
|
||||||
|
"photosLabelQuestion": "Přiložte fotografie k vaší otázce (volitelné)",
|
||||||
|
"submitQuestion": "Odeslat otázku",
|
||||||
|
"sending": "Odesílání...",
|
||||||
|
|
||||||
|
"ratingTitle": "Ohodnoťte produkt",
|
||||||
|
"ratingSubtitle": "Podělte se o své zkušenosti s tímto produktem a pomozte ostatním zákazníkům s rozhodnutím.",
|
||||||
|
"ratingSuccess": "Děkujeme za vaši recenzi! Bude zveřejněna po ověření.",
|
||||||
|
"emailHelper": "Váš email nebude zveřejněn",
|
||||||
|
"ratingLabel": "Hodnocení *",
|
||||||
|
"pleaseRate": "Prosím ohodnoťte",
|
||||||
|
"ratingStars": "{{rating}} z 5 hvězdiček",
|
||||||
|
"reviewLabel": "Vaše recenze (volitelné)",
|
||||||
|
"reviewPlaceholder": "Popište své zkušenosti s tímto produktem...",
|
||||||
|
"photosLabelRating": "Přiložte fotografie k vaší recenzi (volitelné)",
|
||||||
|
"submitRating": "Odeslat recenzi",
|
||||||
|
"errorGeneric": "Došlo k chybě",
|
||||||
|
"errorPhotos": "Chyba při zpracování fotografií",
|
||||||
|
|
||||||
|
"availabilityTitle": "Požádejte o dostupnost",
|
||||||
|
"availabilitySubtitle": "Tento produkt momentálně není dostupný. Rádi vás informujeme, jakmile bude opět skladem.",
|
||||||
|
"availabilitySuccessEmail": "Děkujeme za váš požadavek! Jakmile bude produkt opět dostupný, budeme vás informovat e-mailem.",
|
||||||
|
"availabilitySuccessTelegram": "Děkujeme za váš požadavek! Jakmile bude produkt opět dostupný, budeme vás informovat přes Telegram.",
|
||||||
|
"notificationMethodLabel": "Jak chcete být informováni?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@vaseTelegramJmeno nebo Telegram ID",
|
||||||
|
"telegramHelper": "Zadejte své uživatelské jméno na Telegramu (s @) nebo Telegram ID",
|
||||||
|
"messageLabel": "Zpráva (volitelné)",
|
||||||
|
"messagePlaceholder": "Další informace nebo otázky...",
|
||||||
|
"submitAvailability": "Požádat o dostupnost",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Vybrat fotografie",
|
||||||
|
"photoUploadErrorMaxFiles": "Maximálně {{max}} souborů povoleno",
|
||||||
|
"photoUploadErrorFileType": "Jsou povoleny pouze obrazové soubory (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Soubor je příliš velký. Maximum: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "Vybráno {{count}} souborů",
|
||||||
|
"photoUploadCompressed": "(komprimováno pro nahrání)",
|
||||||
|
"photoUploadRemove": "Odstranit obrázek",
|
||||||
|
"photoUploadLabelDefault": "Přiložit fotografie (volitelné)",
|
||||||
|
|
||||||
|
"shareTitle": "Sdílet",
|
||||||
|
"shareEmbed": "Vložit",
|
||||||
|
"shareCopyLink": "Kopírovat odkaz",
|
||||||
|
"shareSuccessEmbed": "Kód pro vložení zkopírován do schránky!",
|
||||||
|
"shareErrorEmbed": "Chyba při kopírování kódu pro vložení",
|
||||||
|
"shareSuccessLink": "Odkaz zkopírován do schránky!",
|
||||||
|
"shareWhatsAppText": "Podívejte se na tento produkt: {{name}}",
|
||||||
|
"shareTelegramText": "Podívejte se na tento produkt: {{name}}",
|
||||||
|
"shareEmailSubject": "Doporučení produktu",
|
||||||
|
"shareEmailBody": "Dobrý den,\n\nrád bych vám doporučil tento produkt:\n\n{{name}}\n{{url}}\n\nS pozdravem"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ export default {
|
|||||||
"articleNumber": "Artikelnummer",
|
"articleNumber": "Artikelnummer",
|
||||||
"manufacturer": "Hersteller",
|
"manufacturer": "Hersteller",
|
||||||
"inclVat": "inkl. {{vat}}% MwSt.",
|
"inclVat": "inkl. {{vat}}% MwSt.",
|
||||||
|
"inclVatSimple": "inkl. MwSt.",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Neu",
|
"new": "Neu",
|
||||||
"weeks": "Wochen",
|
"weeks": "Wochen",
|
||||||
|
|||||||
62
src/i18n/locales/de/productDialogs.js
Normal file
62
src/i18n/locales/de/productDialogs.js
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Frage zum Artikel",
|
||||||
|
"questionSubtitle": "Haben Sie eine Frage zu diesem Artikel? Wir helfen Ihnen gerne weiter.",
|
||||||
|
"questionSuccess": "Vielen Dank für Ihre Frage! Wir werden uns schnellstmöglich bei Ihnen melden.",
|
||||||
|
"nameLabel": "Name",
|
||||||
|
"namePlaceholder": "Ihr Name",
|
||||||
|
"emailLabel": "E-Mail",
|
||||||
|
"emailPlaceholder": "ihre.email@example.com",
|
||||||
|
"questionLabel": "Ihre Frage",
|
||||||
|
"questionPlaceholder": "Beschreiben Sie Ihre Frage zu diesem Artikel...",
|
||||||
|
"photosLabelQuestion": "Fotos zur Frage anhängen (optional)",
|
||||||
|
"submitQuestion": "Frage senden",
|
||||||
|
"sending": "Wird gesendet...",
|
||||||
|
|
||||||
|
"ratingTitle": "Artikel Bewerten",
|
||||||
|
"ratingSubtitle": "Teilen Sie Ihre Erfahrungen mit diesem Artikel und helfen Sie anderen Kunden bei der Entscheidung.",
|
||||||
|
"ratingSuccess": "Vielen Dank für Ihre Bewertung! Sie wird nach Prüfung veröffentlicht.",
|
||||||
|
"emailHelper": "Ihre E-Mail wird nicht veröffentlicht",
|
||||||
|
"ratingLabel": "Bewertung *",
|
||||||
|
"pleaseRate": "Bitte bewerten",
|
||||||
|
"ratingStars": "{{rating}} von 5 Sternen",
|
||||||
|
"reviewLabel": "Ihre Bewertung (optional)",
|
||||||
|
"reviewPlaceholder": "Beschreiben Sie Ihre Erfahrungen mit diesem Artikel...",
|
||||||
|
"photosLabelRating": "Fotos zur Bewertung anhängen (optional)",
|
||||||
|
"submitRating": "Bewertung abgeben",
|
||||||
|
"errorGeneric": "Ein Fehler ist aufgetreten",
|
||||||
|
"errorPhotos": "Fehler beim Verarbeiten der Fotos",
|
||||||
|
|
||||||
|
"availabilityTitle": "Verfügbarkeit anfragen",
|
||||||
|
"availabilitySubtitle": "Dieser Artikel ist derzeit nicht verfügbar. Gerne informieren wir Sie, sobald er wieder lieferbar ist.",
|
||||||
|
"availabilitySuccessEmail": "Vielen Dank für Ihre Anfrage! Wir werden Sie per E-Mail informieren, sobald der Artikel wieder verfügbar ist.",
|
||||||
|
"availabilitySuccessTelegram": "Vielen Dank für Ihre Anfrage! Wir werden Sie über Telegram informieren, sobald der Artikel wieder verfügbar ist.",
|
||||||
|
"notificationMethodLabel": "Wie möchten Sie benachrichtigt werden?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@IhrTelegramName oder Telegram ID",
|
||||||
|
"telegramHelper": "Geben Sie Ihren Telegram-Benutzernamen (mit @) oder Ihre Telegram-ID ein",
|
||||||
|
"messageLabel": "Nachricht (optional)",
|
||||||
|
"messagePlaceholder": "Zusätzliche Informationen oder Fragen...",
|
||||||
|
"submitAvailability": "Verfügbarkeit anfragen",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Fotos auswählen",
|
||||||
|
"photoUploadErrorMaxFiles": "Maximal {{max}} Dateien erlaubt",
|
||||||
|
"photoUploadErrorFileType": "Nur Bilddateien (JPEG, PNG, GIF, WebP) sind erlaubt",
|
||||||
|
"photoUploadErrorFileSize": "Datei zu groß. Maximum: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} Datei(en) ausgewählt",
|
||||||
|
"photoUploadCompressed": "(komprimiert für Upload)",
|
||||||
|
"photoUploadRemove": "Bild entfernen",
|
||||||
|
"photoUploadLabelDefault": "Fotos anhängen (optional)",
|
||||||
|
|
||||||
|
"shareTitle": "Teilen",
|
||||||
|
"shareEmbed": "Einbetten",
|
||||||
|
"shareCopyLink": "Link kopieren",
|
||||||
|
"shareSuccessEmbed": "Einbettungscode wurde in die Zwischenablage kopiert!",
|
||||||
|
"shareErrorEmbed": "Fehler beim Kopieren des Einbettungscodes",
|
||||||
|
"shareSuccessLink": "Link wurde in die Zwischenablage kopiert!",
|
||||||
|
"shareWhatsAppText": "Schau dir dieses Produkt an: {{name}}",
|
||||||
|
"shareTelegramText": "Schau dir dieses Produkt an: {{name}}",
|
||||||
|
"shareEmailSubject": "Produktempfehlung",
|
||||||
|
"shareEmailBody": "Hallo,\n\nich möchte dir dieses Produkt empfehlen:\n\n{{name}}\n{{url}}\n\nViele Grüße"
|
||||||
|
};
|
||||||
|
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Αριθμός άρθρου",
|
"articleNumber": "Αριθμός άρθρου",
|
||||||
"manufacturer": "Κατασκευαστής",
|
"manufacturer": "Κατασκευαστής",
|
||||||
"inclVat": "συμπ. {{vat}}% ΦΠΑ",
|
"inclVat": "συμπ. {{vat}}% ΦΠΑ",
|
||||||
|
"inclVatSimple": "συμπ. ΦΠΑ",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Νέο",
|
"new": "Νέο",
|
||||||
"weeks": "εβδομάδες",
|
"weeks": "Εβδομάδες",
|
||||||
"arriving": "Άφιξη:",
|
"arriving": "Άφιξη:",
|
||||||
"inclVatFooter": "συμπ. {{vat}}% ΦΠΑ,*",
|
"inclVatFooter": "συμπ. {{vat}}% ΦΠΑ,*",
|
||||||
"availability": "Διαθεσιμότητα",
|
"availability": "Διαθεσιμότητα",
|
||||||
@@ -28,7 +29,7 @@ export default {
|
|||||||
"loadingProduct": "Φόρτωση προϊόντος...",
|
"loadingProduct": "Φόρτωση προϊόντος...",
|
||||||
"individualPriceTotal": "Συνολική τιμή μεμονωμένων:",
|
"individualPriceTotal": "Συνολική τιμή μεμονωμένων:",
|
||||||
"setPrice": "Τιμή σετ:",
|
"setPrice": "Τιμή σετ:",
|
||||||
"yourSavings": "Η εξοικονόμησή σας:",
|
"yourSavings": "Οι εξοικονομήσεις σας:",
|
||||||
"similarProducts": "Παρόμοια προϊόντα",
|
"similarProducts": "Παρόμοια προϊόντα",
|
||||||
"countDisplay": {
|
"countDisplay": {
|
||||||
"noProducts": "0 προϊόντα",
|
"noProducts": "0 προϊόντα",
|
||||||
|
|||||||
61
src/i18n/locales/el/productDialogs.js
Normal file
61
src/i18n/locales/el/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Ερώτηση σχετικά με το προϊόν",
|
||||||
|
"questionSubtitle": "Έχετε κάποια ερώτηση για αυτό το προϊόν; Είμαστε εδώ για να σας βοηθήσουμε.",
|
||||||
|
"questionSuccess": "Ευχαριστούμε για την ερώτησή σας! Θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.",
|
||||||
|
"nameLabel": "Όνομα",
|
||||||
|
"namePlaceholder": "Το όνομά σας",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "your.email@example.com",
|
||||||
|
"questionLabel": "Η ερώτησή σας",
|
||||||
|
"questionPlaceholder": "Περιγράψτε την ερώτησή σας σχετικά με αυτό το προϊόν...",
|
||||||
|
"photosLabelQuestion": "Επισυνάψτε φωτογραφίες στην ερώτησή σας (προαιρετικό)",
|
||||||
|
"submitQuestion": "Αποστολή ερώτησης",
|
||||||
|
"sending": "Αποστολή...",
|
||||||
|
|
||||||
|
"ratingTitle": "Αξιολογήστε το προϊόν",
|
||||||
|
"ratingSubtitle": "Μοιραστείτε την εμπειρία σας με αυτό το προϊόν και βοηθήστε άλλους πελάτες να πάρουν την απόφασή τους.",
|
||||||
|
"ratingSuccess": "Ευχαριστούμε για την αξιολόγησή σας! Θα δημοσιευτεί μετά από έλεγχο.",
|
||||||
|
"emailHelper": "Το email σας δεν θα δημοσιευτεί",
|
||||||
|
"ratingLabel": "Αξιολόγηση *",
|
||||||
|
"pleaseRate": "Παρακαλώ αξιολογήστε",
|
||||||
|
"ratingStars": "{{rating}} από 5 αστέρια",
|
||||||
|
"reviewLabel": "Η κριτική σας (προαιρετικό)",
|
||||||
|
"reviewPlaceholder": "Περιγράψτε τις εμπειρίες σας με αυτό το προϊόν...",
|
||||||
|
"photosLabelRating": "Επισυνάψτε φωτογραφίες στην κριτική σας (προαιρετικό)",
|
||||||
|
"submitRating": "Υποβολή κριτικής",
|
||||||
|
"errorGeneric": "Παρουσιάστηκε σφάλμα",
|
||||||
|
"errorPhotos": "Σφάλμα κατά την επεξεργασία των φωτογραφιών",
|
||||||
|
|
||||||
|
"availabilityTitle": "Ζητήστε διαθεσιμότητα",
|
||||||
|
"availabilitySubtitle": "Αυτό το προϊόν δεν είναι διαθέσιμο αυτή τη στιγμή. Θα χαρούμε να σας ενημερώσουμε μόλις είναι ξανά διαθέσιμο.",
|
||||||
|
"availabilitySuccessEmail": "Ευχαριστούμε για το αίτημά σας! Θα σας ενημερώσουμε μέσω email μόλις το προϊόν είναι ξανά διαθέσιμο.",
|
||||||
|
"availabilitySuccessTelegram": "Ευχαριστούμε για το αίτημά σας! Θα σας ενημερώσουμε μέσω Telegram μόλις το προϊόν είναι ξανά διαθέσιμο.",
|
||||||
|
"notificationMethodLabel": "Πώς θέλετε να ειδοποιηθείτε;",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@yourTelegramName or Telegram ID",
|
||||||
|
"telegramHelper": "Εισάγετε το όνομα χρήστη Telegram (με @) ή το Telegram ID σας",
|
||||||
|
"messageLabel": "Μήνυμα (προαιρετικό)",
|
||||||
|
"messagePlaceholder": "Επιπλέον πληροφορίες ή ερωτήσεις...",
|
||||||
|
"submitAvailability": "Ζητήστε διαθεσιμότητα",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Επιλέξτε φωτογραφίες",
|
||||||
|
"photoUploadErrorMaxFiles": "Επιτρέπονται έως {{max}} αρχεία",
|
||||||
|
"photoUploadErrorFileType": "Επιτρέπονται μόνο αρχεία εικόνας (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Το αρχείο είναι πολύ μεγάλο. Μέγιστο: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "Επιλέχθηκαν {{count}} αρχεία",
|
||||||
|
"photoUploadCompressed": "(συμπιεσμένο για αποστολή)",
|
||||||
|
"photoUploadRemove": "Αφαίρεση εικόνας",
|
||||||
|
"photoUploadLabelDefault": "Επισύναψη φωτογραφιών (προαιρετικό)",
|
||||||
|
|
||||||
|
"shareTitle": "Κοινοποίηση",
|
||||||
|
"shareEmbed": "Ενσωμάτωση",
|
||||||
|
"shareCopyLink": "Αντιγραφή συνδέσμου",
|
||||||
|
"shareSuccessEmbed": "Ο κώδικας ενσωμάτωσης αντιγράφηκε στο πρόχειρο!",
|
||||||
|
"shareErrorEmbed": "Σφάλμα κατά την αντιγραφή του κώδικα ενσωμάτωσης",
|
||||||
|
"shareSuccessLink": "Ο σύνδεσμος αντιγράφηκε στο πρόχειρο!",
|
||||||
|
"shareWhatsAppText": "Δείτε αυτό το προϊόν: {{name}}",
|
||||||
|
"shareTelegramText": "Δείτε αυτό το προϊόν: {{name}}",
|
||||||
|
"shareEmailSubject": "Σύσταση προϊόντος",
|
||||||
|
"shareEmailBody": "Γεια σας,\n\nΘα ήθελα να σας προτείνω αυτό το προϊόν:\n\n{{name}}\n{{url}}\n\nΜε εκτίμηση"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Article number", // Artikelnummer
|
"articleNumber": "Article number", // Artikelnummer
|
||||||
"manufacturer": "Manufacturer", // Hersteller
|
"manufacturer": "Manufacturer", // Hersteller
|
||||||
"inclVat": "incl. {{vat}}% VAT", // inkl. {{vat}}% MwSt.
|
"inclVat": "incl. {{vat}}% VAT", // inkl. {{vat}}% MwSt.
|
||||||
|
"inclVatSimple": "incl. VAT", // inkl. MwSt.
|
||||||
"priceUnit": "{{price}}/{{unit}}", // {{price}}/{{unit}}
|
"priceUnit": "{{price}}/{{unit}}", // {{price}}/{{unit}}
|
||||||
"new": "New", // Neu
|
"new": "New", // Neu
|
||||||
"weeks": "weeks", // Wochen
|
"weeks": "Weeks", // Wochen
|
||||||
"arriving": "Arrival:", // Ankunft:
|
"arriving": "Arrival:", // Ankunft:
|
||||||
"inclVatFooter": "incl. {{vat}}% VAT,*", // inkl. {{vat}}% MwSt.,*
|
"inclVatFooter": "incl. {{vat}}% VAT,*", // inkl. {{vat}}% MwSt.,*
|
||||||
"availability": "Availability", // Verfügbarkeit
|
"availability": "Availability", // Verfügbarkeit
|
||||||
@@ -23,13 +24,13 @@ export default {
|
|||||||
"youSave": "You save: {{amount}}", // Sie sparen: {{amount}}
|
"youSave": "You save: {{amount}}", // Sie sparen: {{amount}}
|
||||||
"cheaperThanIndividual": "Cheaper than buying individually", // Günstiger als Einzelkauf
|
"cheaperThanIndividual": "Cheaper than buying individually", // Günstiger als Einzelkauf
|
||||||
"pickupPrice": "Pickup price: €19.90 per cutting.", // Abholpreis: 19,90 € pro Steckling.
|
"pickupPrice": "Pickup price: €19.90 per cutting.", // Abholpreis: 19,90 € pro Steckling.
|
||||||
"consistsOf": "Consists of:", // Bestehend aus:
|
"consistsOf": "Consisting of:", // Bestehend aus:
|
||||||
"loadingComponentDetails": "{{index}}. Loading component details...", // {{index}}. Lädt Komponent-Details...
|
"loadingComponentDetails": "{{index}}. Loading component details...", // {{index}}. Lädt Komponent-Details...
|
||||||
"loadingProduct": "Product is loading...", // Produkt wird geladen...
|
"loadingProduct": "Loading product...", // Produkt wird geladen...
|
||||||
"individualPriceTotal": "Total individual price:", // Einzelpreis gesamt:
|
"individualPriceTotal": "Total individual price:", // Einzelpreis gesamt:
|
||||||
"setPrice": "Set price:", // Set-Preis:
|
"setPrice": "Set price:", // Set-Preis:
|
||||||
"yourSavings": "Your savings:", // Ihre Ersparnis:
|
"yourSavings": "Your savings:", // Ihre Ersparnis:
|
||||||
"similarProducts": "Similar Products", // Ähnliche Produkte
|
"similarProducts": "Similar products", // Ähnliche Produkte
|
||||||
"countDisplay": {
|
"countDisplay": {
|
||||||
"noProducts": "0 products", // 0 Produkte
|
"noProducts": "0 products", // 0 Produkte
|
||||||
"oneProduct": "1 product", // 1 Produkt
|
"oneProduct": "1 product", // 1 Produkt
|
||||||
|
|||||||
61
src/i18n/locales/en/productDialogs.js
Normal file
61
src/i18n/locales/en/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Question about the product", // Frage zum Artikel
|
||||||
|
"questionSubtitle": "Do you have a question about this product? We are happy to help you.", // Haben Sie eine Frage zu diesem Artikel? Wir helfen Ihnen gerne weiter.
|
||||||
|
"questionSuccess": "Thank you for your question! We will get back to you as soon as possible.", // Vielen Dank für Ihre Frage! Wir werden uns schnellstmöglich bei Ihnen melden.
|
||||||
|
"nameLabel": "Name", // Name
|
||||||
|
"namePlaceholder": "Your name", // Ihr Name
|
||||||
|
"emailLabel": "Email", // E-Mail
|
||||||
|
"emailPlaceholder": "your.email@example.com", // ihre.email@example.com
|
||||||
|
"questionLabel": "Your question", // Ihre Frage
|
||||||
|
"questionPlaceholder": "Describe your question about this product...", // Beschreiben Sie Ihre Frage zu diesem Artikel...
|
||||||
|
"photosLabelQuestion": "Attach photos to your question (optional)", // Fotos zur Frage anhängen (optional)
|
||||||
|
"submitQuestion": "Send question", // Frage senden
|
||||||
|
"sending": "Sending...", // Wird gesendet...
|
||||||
|
|
||||||
|
"ratingTitle": "Rate product", // Artikel Bewerten
|
||||||
|
"ratingSubtitle": "Share your experience with this product and help other customers make their decision.", // Teilen Sie Ihre Erfahrungen mit diesem Artikel und helfen Sie anderen Kunden bei der Entscheidung.
|
||||||
|
"ratingSuccess": "Thank you for your review! It will be published after verification.", // Vielen Dank für Ihre Bewertung! Sie wird nach Prüfung veröffentlicht.
|
||||||
|
"emailHelper": "Your email will not be published", // Ihre E-Mail wird nicht veröffentlicht
|
||||||
|
"ratingLabel": "Rating *", // Bewertung *
|
||||||
|
"pleaseRate": "Please rate", // Bitte bewerten
|
||||||
|
"ratingStars": "{{rating}} out of 5 stars", // {{rating}} von 5 Sternen
|
||||||
|
"reviewLabel": "Your review (optional)", // Ihre Bewertung (optional)
|
||||||
|
"reviewPlaceholder": "Describe your experiences with this product...", // Beschreiben Sie Ihre Erfahrungen mit diesem Artikel...
|
||||||
|
"photosLabelRating": "Attach photos to your review (optional)", // Fotos zur Bewertung anhängen (optional)
|
||||||
|
"submitRating": "Submit review", // Bewertung abgeben
|
||||||
|
"errorGeneric": "An error occurred", // Ein Fehler ist aufgetreten
|
||||||
|
"errorPhotos": "Error processing photos", // Fehler beim Verarbeiten der Fotos
|
||||||
|
|
||||||
|
"availabilityTitle": "Request availability", // Verfügbarkeit anfragen
|
||||||
|
"availabilitySubtitle": "This product is currently unavailable. We will be happy to inform you as soon as it is back in stock.", // Dieser Artikel ist derzeit nicht verfügbar. Gerne informieren wir Sie, sobald er wieder lieferbar ist.
|
||||||
|
"availabilitySuccessEmail": "Thank you for your request! We will notify you by email as soon as the product is available again.", // Vielen Dank für Ihre Anfrage! Wir werden Sie per E-Mail informieren, sobald der Artikel wieder verfügbar ist.
|
||||||
|
"availabilitySuccessTelegram": "Thank you for your request! We will notify you via Telegram as soon as the product is available again.", // Vielen Dank für Ihre Anfrage! Wir werden Sie über Telegram informieren, sobald der Artikel wieder verfügbar ist.
|
||||||
|
"notificationMethodLabel": "How would you like to be notified?", // Wie möchten Sie benachrichtigt werden?
|
||||||
|
"telegramBotLabel": "Telegram Bot", // Telegram Bot
|
||||||
|
"telegramIdLabel": "Telegram ID", // Telegram ID
|
||||||
|
"telegramPlaceholder": "@yourTelegramName or Telegram ID", // @IhrTelegramName oder Telegram ID
|
||||||
|
"telegramHelper": "Enter your Telegram username (with @) or Telegram ID", // Geben Sie Ihren Telegram-Benutzernamen (mit @) oder Ihre Telegram-ID ein
|
||||||
|
"messageLabel": "Message (optional)", // Nachricht (optional)
|
||||||
|
"messagePlaceholder": "Additional information or questions...", // Zusätzliche Informationen oder Fragen...
|
||||||
|
"submitAvailability": "Request availability", // Verfügbarkeit anfragen
|
||||||
|
|
||||||
|
"photoUploadSelect": "Select photos", // Fotos auswählen
|
||||||
|
"photoUploadErrorMaxFiles": "Maximum {{max}} files allowed", // Maximal {{max}} Dateien erlaubt
|
||||||
|
"photoUploadErrorFileType": "Only image files (JPEG, PNG, GIF, WebP) are allowed", // Nur Bilddateien (JPEG, PNG, GIF, WebP) sind erlaubt
|
||||||
|
"photoUploadErrorFileSize": "File too large. Maximum: {{maxSize}}MB", // Datei zu groß. Maximum: {{maxSize}}MB
|
||||||
|
"photoUploadSelectedFiles": "{{count}} file(s) selected", // {{count}} Datei(en) ausgewählt
|
||||||
|
"photoUploadCompressed": "(compressed for upload)", // (komprimiert für Upload)
|
||||||
|
"photoUploadRemove": "Remove image", // Bild entfernen
|
||||||
|
"photoUploadLabelDefault": "Attach photos (optional)", // Fotos anhängen (optional)
|
||||||
|
|
||||||
|
"shareTitle": "Share", // Teilen
|
||||||
|
"shareEmbed": "Embed", // Einbetten
|
||||||
|
"shareCopyLink": "Copy link", // Link kopieren
|
||||||
|
"shareSuccessEmbed": "Embed code copied to clipboard!", // Einbettungscode wurde in die Zwischenablage kopiert!
|
||||||
|
"shareErrorEmbed": "Error copying the embed code", // Fehler beim Kopieren des Einbettungscodes
|
||||||
|
"shareSuccessLink": "Link copied to clipboard!", // Link wurde in die Zwischenablage kopiert!
|
||||||
|
"shareWhatsAppText": "Check out this product: {{name}}", // Schau dir dieses Produkt an: {{name}}
|
||||||
|
"shareTelegramText": "Check out this product: {{name}}", // Schau dir dieses Produkt an: {{name}}
|
||||||
|
"shareEmailSubject": "Product recommendation", // Produktempfehlung
|
||||||
|
"shareEmailBody": "Hello,\n\nI'd like to recommend this product to you:\n\n{{name}}\n{{url}}\n\nBest regards", // Hallo,\n\nich möchte dir dieses Produkt empfehlen:\n\n{{name}}\n{{url}}\n\nViele Grüße
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Número de artículo",
|
"articleNumber": "Número de artículo",
|
||||||
"manufacturer": "Fabricante",
|
"manufacturer": "Fabricante",
|
||||||
"inclVat": "incl. {{vat}}% IVA",
|
"inclVat": "incl. {{vat}}% IVA",
|
||||||
|
"inclVatSimple": "incl. IVA",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Nuevo",
|
"new": "Nuevo",
|
||||||
"weeks": "semanas",
|
"weeks": "Semanas",
|
||||||
"arriving": "Llegada:",
|
"arriving": "Llegada:",
|
||||||
"inclVatFooter": "incl. {{vat}}% IVA,*",
|
"inclVatFooter": "incl. {{vat}}% IVA,*",
|
||||||
"availability": "Disponibilidad",
|
"availability": "Disponibilidad",
|
||||||
@@ -25,7 +26,7 @@ export default {
|
|||||||
"pickupPrice": "Precio de recogida: 19,90 € por esqueje.",
|
"pickupPrice": "Precio de recogida: 19,90 € por esqueje.",
|
||||||
"consistsOf": "Consiste en:",
|
"consistsOf": "Consiste en:",
|
||||||
"loadingComponentDetails": "{{index}}. Cargando detalles del componente...",
|
"loadingComponentDetails": "{{index}}. Cargando detalles del componente...",
|
||||||
"loadingProduct": "Producto cargando...",
|
"loadingProduct": "Cargando producto...",
|
||||||
"individualPriceTotal": "Precio individual total:",
|
"individualPriceTotal": "Precio individual total:",
|
||||||
"setPrice": "Precio del set:",
|
"setPrice": "Precio del set:",
|
||||||
"yourSavings": "Tus ahorros:",
|
"yourSavings": "Tus ahorros:",
|
||||||
|
|||||||
61
src/i18n/locales/es/productDialogs.js
Normal file
61
src/i18n/locales/es/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Pregunta sobre el producto",
|
||||||
|
"questionSubtitle": "¿Tiene alguna pregunta sobre este producto? Estamos encantados de ayudarle.",
|
||||||
|
"questionSuccess": "¡Gracias por su pregunta! Nos pondremos en contacto con usted lo antes posible.",
|
||||||
|
"nameLabel": "Nombre",
|
||||||
|
"namePlaceholder": "Su nombre",
|
||||||
|
"emailLabel": "Correo electrónico",
|
||||||
|
"emailPlaceholder": "su.email@ejemplo.com",
|
||||||
|
"questionLabel": "Su pregunta",
|
||||||
|
"questionPlaceholder": "Describa su pregunta sobre este producto...",
|
||||||
|
"photosLabelQuestion": "Adjunte fotos a su pregunta (opcional)",
|
||||||
|
"submitQuestion": "Enviar pregunta",
|
||||||
|
"sending": "Enviando...",
|
||||||
|
|
||||||
|
"ratingTitle": "Calificar producto",
|
||||||
|
"ratingSubtitle": "Comparta su experiencia con este producto y ayude a otros clientes a tomar su decisión.",
|
||||||
|
"ratingSuccess": "¡Gracias por su reseña! Se publicará después de la verificación.",
|
||||||
|
"emailHelper": "Su correo electrónico no será publicado",
|
||||||
|
"ratingLabel": "Calificación *",
|
||||||
|
"pleaseRate": "Por favor califique",
|
||||||
|
"ratingStars": "{{rating}} de 5 estrellas",
|
||||||
|
"reviewLabel": "Su reseña (opcional)",
|
||||||
|
"reviewPlaceholder": "Describa sus experiencias con este producto...",
|
||||||
|
"photosLabelRating": "Adjunte fotos a su reseña (opcional)",
|
||||||
|
"submitRating": "Enviar reseña",
|
||||||
|
"errorGeneric": "Ocurrió un error",
|
||||||
|
"errorPhotos": "Error al procesar las fotos",
|
||||||
|
|
||||||
|
"availabilityTitle": "Solicitar disponibilidad",
|
||||||
|
"availabilitySubtitle": "Este producto no está disponible actualmente. Le informaremos tan pronto como vuelva a estar en stock.",
|
||||||
|
"availabilitySuccessEmail": "¡Gracias por su solicitud! Le notificaremos por correo electrónico tan pronto como el producto esté disponible nuevamente.",
|
||||||
|
"availabilitySuccessTelegram": "¡Gracias por su solicitud! Le notificaremos vía Telegram tan pronto como el producto esté disponible nuevamente.",
|
||||||
|
"notificationMethodLabel": "¿Cómo desea ser notificado?",
|
||||||
|
"telegramBotLabel": "Bot de Telegram",
|
||||||
|
"telegramIdLabel": "ID de Telegram",
|
||||||
|
"telegramPlaceholder": "@suNombreTelegram o ID de Telegram",
|
||||||
|
"telegramHelper": "Ingrese su nombre de usuario de Telegram (con @) o ID de Telegram",
|
||||||
|
"messageLabel": "Mensaje (opcional)",
|
||||||
|
"messagePlaceholder": "Información adicional o preguntas...",
|
||||||
|
"submitAvailability": "Solicitar disponibilidad",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Seleccionar fotos",
|
||||||
|
"photoUploadErrorMaxFiles": "Máximo {{max}} archivos permitidos",
|
||||||
|
"photoUploadErrorFileType": "Solo se permiten archivos de imagen (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Archivo demasiado grande. Máximo: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} archivo(s) seleccionado(s)",
|
||||||
|
"photoUploadCompressed": "(comprimido para subir)",
|
||||||
|
"photoUploadRemove": "Eliminar imagen",
|
||||||
|
"photoUploadLabelDefault": "Adjuntar fotos (opcional)",
|
||||||
|
|
||||||
|
"shareTitle": "Compartir",
|
||||||
|
"shareEmbed": "Insertar",
|
||||||
|
"shareCopyLink": "Copiar enlace",
|
||||||
|
"shareSuccessEmbed": "¡Código de inserción copiado al portapapeles!",
|
||||||
|
"shareErrorEmbed": "Error al copiar el código de inserción",
|
||||||
|
"shareSuccessLink": "¡Enlace copiado al portapapeles!",
|
||||||
|
"shareWhatsAppText": "Mira este producto: {{name}}",
|
||||||
|
"shareTelegramText": "Mira este producto: {{name}}",
|
||||||
|
"shareEmailSubject": "Recomendación de producto",
|
||||||
|
"shareEmailBody": "Hola,\n\nQuisiera recomendarte este producto:\n\n{{name}}\n{{url}}\n\nSaludos cordiales"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Numéro d'article",
|
"articleNumber": "Numéro d'article",
|
||||||
"manufacturer": "Fabricant",
|
"manufacturer": "Fabricant",
|
||||||
"inclVat": "TTC {{vat}}%",
|
"inclVat": "TTC {{vat}}%",
|
||||||
|
"inclVatSimple": "TTC",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Nouveau",
|
"new": "Nouveau",
|
||||||
"weeks": "semaines",
|
"weeks": "Semaines",
|
||||||
"arriving": "Arrivée :",
|
"arriving": "Arrivée :",
|
||||||
"inclVatFooter": "TTC {{vat}}%,*",
|
"inclVatFooter": "TTC {{vat}}%,*",
|
||||||
"availability": "Disponibilité",
|
"availability": "Disponibilité",
|
||||||
@@ -25,7 +26,7 @@ export default {
|
|||||||
"pickupPrice": "Prix de retrait : 19,90 € par bouture.",
|
"pickupPrice": "Prix de retrait : 19,90 € par bouture.",
|
||||||
"consistsOf": "Composé de :",
|
"consistsOf": "Composé de :",
|
||||||
"loadingComponentDetails": "{{index}}. Chargement des détails du composant...",
|
"loadingComponentDetails": "{{index}}. Chargement des détails du composant...",
|
||||||
"loadingProduct": "Le produit est en cours de chargement...",
|
"loadingProduct": "Chargement du produit...",
|
||||||
"individualPriceTotal": "Prix individuel total :",
|
"individualPriceTotal": "Prix individuel total :",
|
||||||
"setPrice": "Prix du lot :",
|
"setPrice": "Prix du lot :",
|
||||||
"yourSavings": "Vos économies :",
|
"yourSavings": "Vos économies :",
|
||||||
|
|||||||
61
src/i18n/locales/fr/productDialogs.js
Normal file
61
src/i18n/locales/fr/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Question sur le produit",
|
||||||
|
"questionSubtitle": "Vous avez une question sur ce produit ? Nous sommes heureux de vous aider.",
|
||||||
|
"questionSuccess": "Merci pour votre question ! Nous vous répondrons dès que possible.",
|
||||||
|
"nameLabel": "Nom",
|
||||||
|
"namePlaceholder": "Votre nom",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "votre.email@exemple.com",
|
||||||
|
"questionLabel": "Votre question",
|
||||||
|
"questionPlaceholder": "Décrivez votre question à propos de ce produit...",
|
||||||
|
"photosLabelQuestion": "Joindre des photos à votre question (optionnel)",
|
||||||
|
"submitQuestion": "Envoyer la question",
|
||||||
|
"sending": "Envoi en cours...",
|
||||||
|
|
||||||
|
"ratingTitle": "Noter le produit",
|
||||||
|
"ratingSubtitle": "Partagez votre expérience avec ce produit et aidez les autres clients à prendre leur décision.",
|
||||||
|
"ratingSuccess": "Merci pour votre avis ! Il sera publié après vérification.",
|
||||||
|
"emailHelper": "Votre email ne sera pas publié",
|
||||||
|
"ratingLabel": "Note *",
|
||||||
|
"pleaseRate": "Veuillez noter",
|
||||||
|
"ratingStars": "{{rating}} sur 5 étoiles",
|
||||||
|
"reviewLabel": "Votre avis (optionnel)",
|
||||||
|
"reviewPlaceholder": "Décrivez vos expériences avec ce produit...",
|
||||||
|
"photosLabelRating": "Joindre des photos à votre avis (optionnel)",
|
||||||
|
"submitRating": "Soumettre l'avis",
|
||||||
|
"errorGeneric": "Une erreur est survenue",
|
||||||
|
"errorPhotos": "Erreur lors du traitement des photos",
|
||||||
|
|
||||||
|
"availabilityTitle": "Demander la disponibilité",
|
||||||
|
"availabilitySubtitle": "Ce produit est actuellement indisponible. Nous serons heureux de vous informer dès qu'il sera de nouveau en stock.",
|
||||||
|
"availabilitySuccessEmail": "Merci pour votre demande ! Nous vous informerons par email dès que le produit sera à nouveau disponible.",
|
||||||
|
"availabilitySuccessTelegram": "Merci pour votre demande ! Nous vous informerons via Telegram dès que le produit sera à nouveau disponible.",
|
||||||
|
"notificationMethodLabel": "Comment souhaitez-vous être informé ?",
|
||||||
|
"telegramBotLabel": "Bot Telegram",
|
||||||
|
"telegramIdLabel": "ID Telegram",
|
||||||
|
"telegramPlaceholder": "@votreNomTelegram ou ID Telegram",
|
||||||
|
"telegramHelper": "Entrez votre nom d'utilisateur Telegram (avec @) ou votre ID Telegram",
|
||||||
|
"messageLabel": "Message (optionnel)",
|
||||||
|
"messagePlaceholder": "Informations supplémentaires ou questions...",
|
||||||
|
"submitAvailability": "Demander la disponibilité",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Sélectionner des photos",
|
||||||
|
"photoUploadErrorMaxFiles": "Maximum {{max}} fichiers autorisés",
|
||||||
|
"photoUploadErrorFileType": "Seuls les fichiers image (JPEG, PNG, GIF, WebP) sont autorisés",
|
||||||
|
"photoUploadErrorFileSize": "Fichier trop volumineux. Maximum : {{maxSize}}Mo",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} fichier(s) sélectionné(s)",
|
||||||
|
"photoUploadCompressed": "(compressé pour l'envoi)",
|
||||||
|
"photoUploadRemove": "Supprimer l'image",
|
||||||
|
"photoUploadLabelDefault": "Joindre des photos (optionnel)",
|
||||||
|
|
||||||
|
"shareTitle": "Partager",
|
||||||
|
"shareEmbed": "Intégrer",
|
||||||
|
"shareCopyLink": "Copier le lien",
|
||||||
|
"shareSuccessEmbed": "Code d'intégration copié dans le presse-papiers !",
|
||||||
|
"shareErrorEmbed": "Erreur lors de la copie du code d'intégration",
|
||||||
|
"shareSuccessLink": "Lien copié dans le presse-papiers !",
|
||||||
|
"shareWhatsAppText": "Découvrez ce produit : {{name}}",
|
||||||
|
"shareTelegramText": "Découvrez ce produit : {{name}}",
|
||||||
|
"shareEmailSubject": "Recommandation de produit",
|
||||||
|
"shareEmailBody": "Bonjour,\n\nJe souhaite vous recommander ce produit :\n\n{{name}}\n{{url}}\n\nCordialement"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -3,14 +3,15 @@ export default {
|
|||||||
"loadingDescription": "Učitavanje opisa proizvoda...",
|
"loadingDescription": "Učitavanje opisa proizvoda...",
|
||||||
"notFound": "Proizvod nije pronađen",
|
"notFound": "Proizvod nije pronađen",
|
||||||
"notFoundDescription": "Proizvod koji tražite ne postoji ili je uklonjen.",
|
"notFoundDescription": "Proizvod koji tražite ne postoji ili je uklonjen.",
|
||||||
"backToHome": "Povratak na početnu stranicu",
|
"backToHome": "Natrag na početnu stranicu",
|
||||||
"error": "Greška",
|
"error": "Greška",
|
||||||
"articleNumber": "Broj artikla",
|
"articleNumber": "Broj artikla",
|
||||||
"manufacturer": "Proizvođač",
|
"manufacturer": "Proizvođač",
|
||||||
"inclVat": "uključujući {{vat}}% PDV-a",
|
"inclVat": "uključujući {{vat}}% PDV-a",
|
||||||
|
"inclVatSimple": "uključujući PDV",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Novo",
|
"new": "Novo",
|
||||||
"weeks": "tjedana",
|
"weeks": "Tjedni",
|
||||||
"arriving": "Dolazak:",
|
"arriving": "Dolazak:",
|
||||||
"inclVatFooter": "uključujući {{vat}}% PDV-a,*",
|
"inclVatFooter": "uključujući {{vat}}% PDV-a,*",
|
||||||
"availability": "Dostupnost",
|
"availability": "Dostupnost",
|
||||||
@@ -25,7 +26,7 @@ export default {
|
|||||||
"pickupPrice": "Cijena preuzimanja: 19,90 € po reznici.",
|
"pickupPrice": "Cijena preuzimanja: 19,90 € po reznici.",
|
||||||
"consistsOf": "Sastoji se od:",
|
"consistsOf": "Sastoji se od:",
|
||||||
"loadingComponentDetails": "{{index}}. Učitavanje detalja komponente...",
|
"loadingComponentDetails": "{{index}}. Učitavanje detalja komponente...",
|
||||||
"loadingProduct": "Proizvod se učitava...",
|
"loadingProduct": "Učitavanje proizvoda...",
|
||||||
"individualPriceTotal": "Ukupna pojedinačna cijena:",
|
"individualPriceTotal": "Ukupna pojedinačna cijena:",
|
||||||
"setPrice": "Cijena seta:",
|
"setPrice": "Cijena seta:",
|
||||||
"yourSavings": "Vaša ušteda:",
|
"yourSavings": "Vaša ušteda:",
|
||||||
@@ -38,7 +39,7 @@ export default {
|
|||||||
"filteredOneProduct": "{{filtered}} od 1 proizvoda",
|
"filteredOneProduct": "{{filtered}} od 1 proizvoda",
|
||||||
"xOfYProducts": "{{x}} od {{y}} proizvoda"
|
"xOfYProducts": "{{x}} od {{y}} proizvoda"
|
||||||
},
|
},
|
||||||
"removeFiltersToSee": "Uklonite filtere da vidite proizvode",
|
"removeFiltersToSee": "Uklonite filtre da vidite proizvode",
|
||||||
"outOfStock": "Nema na skladištu",
|
"outOfStock": "Nema na skladištu",
|
||||||
"fromXProducts": "od {{count}} proizvoda",
|
"fromXProducts": "od {{count}} proizvoda",
|
||||||
"discount": {
|
"discount": {
|
||||||
|
|||||||
61
src/i18n/locales/hr/productDialogs.js
Normal file
61
src/i18n/locales/hr/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Pitanje o proizvodu",
|
||||||
|
"questionSubtitle": "Imate li pitanje o ovom proizvodu? Rado ćemo vam pomoći.",
|
||||||
|
"questionSuccess": "Hvala na vašem pitanju! Javili smo vam se što je prije moguće.",
|
||||||
|
"nameLabel": "Ime",
|
||||||
|
"namePlaceholder": "Vaše ime",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "your.email@example.com",
|
||||||
|
"questionLabel": "Vaše pitanje",
|
||||||
|
"questionPlaceholder": "Opišite svoje pitanje o ovom proizvodu...",
|
||||||
|
"photosLabelQuestion": "Priložite fotografije uz svoje pitanje (opcionalno)",
|
||||||
|
"submitQuestion": "Pošalji pitanje",
|
||||||
|
"sending": "Šalje se...",
|
||||||
|
|
||||||
|
"ratingTitle": "Ocijenite proizvod",
|
||||||
|
"ratingSubtitle": "Podijelite svoje iskustvo s ovim proizvodom i pomozite drugim kupcima u odluci.",
|
||||||
|
"ratingSuccess": "Hvala na vašoj recenziji! Bit će objavljena nakon provjere.",
|
||||||
|
"emailHelper": "Vaš email neće biti objavljen",
|
||||||
|
"ratingLabel": "Ocjena *",
|
||||||
|
"pleaseRate": "Molimo ocijenite",
|
||||||
|
"ratingStars": "{{rating}} od 5 zvjezdica",
|
||||||
|
"reviewLabel": "Vaša recenzija (opcionalno)",
|
||||||
|
"reviewPlaceholder": "Opišite svoja iskustva s ovim proizvodom...",
|
||||||
|
"photosLabelRating": "Priložite fotografije uz svoju recenziju (opcionalno)",
|
||||||
|
"submitRating": "Pošalji recenziju",
|
||||||
|
"errorGeneric": "Došlo je do pogreške",
|
||||||
|
"errorPhotos": "Pogreška pri obradi fotografija",
|
||||||
|
|
||||||
|
"availabilityTitle": "Zatražite dostupnost",
|
||||||
|
"availabilitySubtitle": "Ovaj proizvod trenutno nije dostupan. Obavijestit ćemo vas čim ponovno bude na skladištu.",
|
||||||
|
"availabilitySuccessEmail": "Hvala na vašem zahtjevu! Obavijestit ćemo vas putem emaila čim proizvod ponovno bude dostupan.",
|
||||||
|
"availabilitySuccessTelegram": "Hvala na vašem zahtjevu! Obavijestit ćemo vas putem Telegrama čim proizvod ponovno bude dostupan.",
|
||||||
|
"notificationMethodLabel": "Kako želite biti obaviješteni?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@yourTelegramName or Telegram ID",
|
||||||
|
"telegramHelper": "Unesite svoje Telegram korisničko ime (s @) ili Telegram ID",
|
||||||
|
"messageLabel": "Poruka (opcionalno)",
|
||||||
|
"messagePlaceholder": "Dodatne informacije ili pitanja...",
|
||||||
|
"submitAvailability": "Zatražite dostupnost",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Odaberite fotografije",
|
||||||
|
"photoUploadErrorMaxFiles": "Dozvoljeno maksimalno {{max}} datoteka",
|
||||||
|
"photoUploadErrorFileType": "Dozvoljene su samo slikovne datoteke (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Datoteka je prevelika. Maksimum: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} datoteka je odabrano",
|
||||||
|
"photoUploadCompressed": "(komprimirano za prijenos)",
|
||||||
|
"photoUploadRemove": "Ukloni sliku",
|
||||||
|
"photoUploadLabelDefault": "Priložite fotografije (opcionalno)",
|
||||||
|
|
||||||
|
"shareTitle": "Podijeli",
|
||||||
|
"shareEmbed": "Ugradi",
|
||||||
|
"shareCopyLink": "Kopiraj link",
|
||||||
|
"shareSuccessEmbed": "Kod za ugradnju kopiran u međuspremnik!",
|
||||||
|
"shareErrorEmbed": "Pogreška pri kopiranju koda za ugradnju",
|
||||||
|
"shareSuccessLink": "Link kopiran u međuspremnik!",
|
||||||
|
"shareWhatsAppText": "Pogledajte ovaj proizvod: {{name}}",
|
||||||
|
"shareTelegramText": "Pogledajte ovaj proizvod: {{name}}",
|
||||||
|
"shareEmailSubject": "Preporuka proizvoda",
|
||||||
|
"shareEmailBody": "Pozdrav,\n\nŽelio/la bih vam preporučiti ovaj proizvod:\n\n{{name}}\n{{url}}\n\nSrdačan pozdrav"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -1,50 +1,51 @@
|
|||||||
export default {
|
export default {
|
||||||
"loading": "Termék betöltése...",
|
"loading": "Termék betöltése...",
|
||||||
"loadingDescription": "Termékleírás betöltése...",
|
"loadingDescription": "Termékleírás betöltése...",
|
||||||
"notFound": "A termék nem található",
|
"notFound": "A termék nem található",
|
||||||
"notFoundDescription": "A keresett termék nem létezik vagy eltávolításra került.",
|
"notFoundDescription": "A keresett termék nem létezik vagy eltávolításra került.",
|
||||||
"backToHome": "Vissza a kezdőlapra",
|
"backToHome": "Vissza a kezdőlapra",
|
||||||
"error": "Hiba",
|
"error": "Hiba",
|
||||||
"articleNumber": "Cikkszám",
|
"articleNumber": "Cikkszám",
|
||||||
"manufacturer": "Gyártó",
|
"manufacturer": "Gyártó",
|
||||||
"inclVat": "áfával együtt {{vat}}%",
|
"inclVat": "áfával együtt {{vat}}%",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"inclVatSimple": "áfával együtt",
|
||||||
"new": "Új",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"weeks": "hetek",
|
"new": "Új",
|
||||||
"arriving": "Érkezés:",
|
"weeks": "Hét",
|
||||||
"inclVatFooter": "áfával együtt {{vat}}%,*",
|
"arriving": "Érkezés:",
|
||||||
"availability": "Elérhetőség",
|
"inclVatFooter": "áfával együtt {{vat}}%,*",
|
||||||
"inStock": "készleten",
|
"availability": "Elérhetőség",
|
||||||
"comingSoon": "Hamarosan elérhető",
|
"inStock": "készleten",
|
||||||
"deliveryTime": "Szállítási idő",
|
"comingSoon": "Hamarosan elérhető",
|
||||||
"inclShort": "áfával",
|
"deliveryTime": "Szállítási idő",
|
||||||
"vatShort": "ÁFA",
|
"inclShort": "áfával",
|
||||||
"weight": "Súly: {{weight}} kg",
|
"vatShort": "ÁFA",
|
||||||
"youSave": "Megtakarítás: {{amount}}",
|
"weight": "Súly: {{weight}} kg",
|
||||||
"cheaperThanIndividual": "Olcsóbb, mint külön megvásárolni",
|
"youSave": "Megtakarítás: {{amount}}",
|
||||||
"pickupPrice": "Átvételi ár: 19,90 € darabonként.",
|
"cheaperThanIndividual": "Olcsóbb, mint külön megvásárolni",
|
||||||
"consistsOf": "Tartalmazza:",
|
"pickupPrice": "Átvételi ár: 19,90 € darabonként.",
|
||||||
"loadingComponentDetails": "{{index}}. Komponens részleteinek betöltése...",
|
"consistsOf": "Tartalmazza:",
|
||||||
"loadingProduct": "Termék betöltése...",
|
"loadingComponentDetails": "{{index}}. Komponens részleteinek betöltése...",
|
||||||
"individualPriceTotal": "Egyedi ár összesen:",
|
"loadingProduct": "Termék betöltése...",
|
||||||
"setPrice": "Szett ár:",
|
"individualPriceTotal": "Egyedi ár összesen:",
|
||||||
"yourSavings": "Megtakarításod:",
|
"setPrice": "Szett ár:",
|
||||||
"similarProducts": "Hasonló termékek",
|
"yourSavings": "Az Ön megtakarítása:",
|
||||||
|
"similarProducts": "Hasonló termékek",
|
||||||
"countDisplay": {
|
"countDisplay": {
|
||||||
"noProducts": "0 termék",
|
"noProducts": "0 termék",
|
||||||
"oneProduct": "1 termék",
|
"oneProduct": "1 termék",
|
||||||
"multipleProducts": "{{count}} termék",
|
"multipleProducts": "{{count}} termék",
|
||||||
"filteredProducts": "{{filtered}} a(z) {{total}} termékből",
|
"filteredProducts": "{{filtered}} a(z) {{total}} termékből",
|
||||||
"filteredOneProduct": "{{filtered}} az 1 termékből",
|
"filteredOneProduct": "{{filtered}} az 1 termékből",
|
||||||
"xOfYProducts": "{{x}} a(z) {{y}} termékből"
|
"xOfYProducts": "{{x}} a(z) {{y}} termékből"
|
||||||
},
|
},
|
||||||
"removeFiltersToSee": "Szűrők eltávolítása a termékek megtekintéséhez",
|
"removeFiltersToSee": "Szűrők eltávolítása a termékek megtekintéséhez",
|
||||||
"outOfStock": "Nincs készleten",
|
"outOfStock": "Nincs készleten",
|
||||||
"fromXProducts": "{{count}} terméktől",
|
"fromXProducts": "{{count}} terméktől",
|
||||||
"discount": {
|
"discount": {
|
||||||
"from3Products": "3 terméktől",
|
"from3Products": "3 terméktől",
|
||||||
"from5Products": "5 terméktől",
|
"from5Products": "5 terméktől",
|
||||||
"from7Products": "7 terméktől",
|
"from7Products": "7 terméktől",
|
||||||
"moreProductsMoreSavings": "Minél több terméket választasz, annál többet spórolsz!"
|
"moreProductsMoreSavings": "Minél több terméket választasz, annál többet spórolsz!"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
61
src/i18n/locales/hu/productDialogs.js
Normal file
61
src/i18n/locales/hu/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Kérdés a termékről",
|
||||||
|
"questionSubtitle": "Van kérdése ezzel a termékkel kapcsolatban? Örömmel segítünk.",
|
||||||
|
"questionSuccess": "Köszönjük a kérdését! A lehető leghamarabb válaszolunk.",
|
||||||
|
"nameLabel": "Név",
|
||||||
|
"namePlaceholder": "Az Ön neve",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "az.email@pelda.hu",
|
||||||
|
"questionLabel": "Az Ön kérdése",
|
||||||
|
"questionPlaceholder": "Írja le kérdését ezzel a termékkel kapcsolatban...",
|
||||||
|
"photosLabelQuestion": "Csatoljon fényképeket a kérdéséhez (opcionális)",
|
||||||
|
"submitQuestion": "Kérdés küldése",
|
||||||
|
"sending": "Küldés...",
|
||||||
|
|
||||||
|
"ratingTitle": "Értékelje a terméket",
|
||||||
|
"ratingSubtitle": "Ossza meg tapasztalatait ezzel a termékkel kapcsolatban, és segítsen más vásárlóknak a döntésben.",
|
||||||
|
"ratingSuccess": "Köszönjük az értékelését! Ellenőrzés után megjelenik.",
|
||||||
|
"emailHelper": "Az Ön e-mail címe nem lesz nyilvános",
|
||||||
|
"ratingLabel": "Értékelés *",
|
||||||
|
"pleaseRate": "Kérjük, értékeljen",
|
||||||
|
"ratingStars": "{{rating}} az 5 csillagból",
|
||||||
|
"reviewLabel": "Az Ön értékelése (opcionális)",
|
||||||
|
"reviewPlaceholder": "Írja le tapasztalatait ezzel a termékkel kapcsolatban...",
|
||||||
|
"photosLabelRating": "Csatoljon fényképeket az értékeléséhez (opcionális)",
|
||||||
|
"submitRating": "Értékelés elküldése",
|
||||||
|
"errorGeneric": "Hiba történt",
|
||||||
|
"errorPhotos": "Hiba a fényképek feldolgozása során",
|
||||||
|
|
||||||
|
"availabilityTitle": "Készletkérés",
|
||||||
|
"availabilitySubtitle": "Ez a termék jelenleg nem elérhető. Örömmel értesítjük, amint újra készleten lesz.",
|
||||||
|
"availabilitySuccessEmail": "Köszönjük a kérését! E-mailben értesítjük, amint a termék újra elérhető.",
|
||||||
|
"availabilitySuccessTelegram": "Köszönjük a kérését! Telegramon értesítjük, amint a termék újra elérhető.",
|
||||||
|
"notificationMethodLabel": "Hogyan szeretne értesítést kapni?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@TelegramNeved vagy Telegram ID",
|
||||||
|
"telegramHelper": "Adja meg Telegram felhasználónevét (@-al) vagy Telegram ID-ját",
|
||||||
|
"messageLabel": "Üzenet (opcionális)",
|
||||||
|
"messagePlaceholder": "További információk vagy kérdések...",
|
||||||
|
"submitAvailability": "Készletkérés",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Fényképek kiválasztása",
|
||||||
|
"photoUploadErrorMaxFiles": "Maximum {{max}} fájl engedélyezett",
|
||||||
|
"photoUploadErrorFileType": "Csak képfájlok (JPEG, PNG, GIF, WebP) engedélyezettek",
|
||||||
|
"photoUploadErrorFileSize": "A fájl túl nagy. Maximum: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} fájl kiválasztva",
|
||||||
|
"photoUploadCompressed": "(feltöltéshez tömörítve)",
|
||||||
|
"photoUploadRemove": "Kép eltávolítása",
|
||||||
|
"photoUploadLabelDefault": "Fényképek csatolása (opcionális)",
|
||||||
|
|
||||||
|
"shareTitle": "Megosztás",
|
||||||
|
"shareEmbed": "Beágyazás",
|
||||||
|
"shareCopyLink": "Link másolása",
|
||||||
|
"shareSuccessEmbed": "Beágyazási kód a vágólapra másolva!",
|
||||||
|
"shareErrorEmbed": "Hiba a beágyazási kód másolásakor",
|
||||||
|
"shareSuccessLink": "Link a vágólapra másolva!",
|
||||||
|
"shareWhatsAppText": "Nézd meg ezt a terméket: {{name}}",
|
||||||
|
"shareTelegramText": "Nézd meg ezt a terméket: {{name}}",
|
||||||
|
"shareEmailSubject": "Termékajánló",
|
||||||
|
"shareEmailBody": "Szia,\n\nSzeretném ajánlani neked ezt a terméket:\n\n{{name}}\n{{url}}\n\nÜdvözlettel"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Numero articolo",
|
"articleNumber": "Numero articolo",
|
||||||
"manufacturer": "Produttore",
|
"manufacturer": "Produttore",
|
||||||
"inclVat": "incl. {{vat}}% IVA",
|
"inclVat": "incl. {{vat}}% IVA",
|
||||||
|
"inclVatSimple": "incl. IVA",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Nuovo",
|
"new": "Nuovo",
|
||||||
"weeks": "settimane",
|
"weeks": "Settimane",
|
||||||
"arriving": "Arrivo:",
|
"arriving": "Arrivo:",
|
||||||
"inclVatFooter": "incl. {{vat}}% IVA,*",
|
"inclVatFooter": "incl. {{vat}}% IVA,*",
|
||||||
"availability": "Disponibilità",
|
"availability": "Disponibilità",
|
||||||
@@ -21,14 +22,14 @@ export default {
|
|||||||
"vatShort": "IVA",
|
"vatShort": "IVA",
|
||||||
"weight": "Peso: {{weight}} kg",
|
"weight": "Peso: {{weight}} kg",
|
||||||
"youSave": "Risparmi: {{amount}}",
|
"youSave": "Risparmi: {{amount}}",
|
||||||
"cheaperThanIndividual": "Più conveniente che acquistare singolarmente",
|
"cheaperThanIndividual": "Più economico che acquistare singolarmente",
|
||||||
"pickupPrice": "Prezzo ritiro: €19,90 per talea.",
|
"pickupPrice": "Prezzo ritiro: €19,90 per talea.",
|
||||||
"consistsOf": "Composto da:",
|
"consistsOf": "Composto da:",
|
||||||
"loadingComponentDetails": "{{index}}. Caricamento dettagli componente...",
|
"loadingComponentDetails": "{{index}}. Caricamento dettagli componente...",
|
||||||
"loadingProduct": "Caricamento prodotto...",
|
"loadingProduct": "Caricamento prodotto...",
|
||||||
"individualPriceTotal": "Prezzo totale individuale:",
|
"individualPriceTotal": "Prezzo totale individuale:",
|
||||||
"setPrice": "Prezzo set:",
|
"setPrice": "Prezzo set:",
|
||||||
"yourSavings": "I tuoi risparmi:",
|
"yourSavings": "Il tuo risparmio:",
|
||||||
"similarProducts": "Prodotti simili",
|
"similarProducts": "Prodotti simili",
|
||||||
"countDisplay": {
|
"countDisplay": {
|
||||||
"noProducts": "0 prodotti",
|
"noProducts": "0 prodotti",
|
||||||
|
|||||||
61
src/i18n/locales/it/productDialogs.js
Normal file
61
src/i18n/locales/it/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Domanda sul prodotto",
|
||||||
|
"questionSubtitle": "Hai una domanda su questo prodotto? Siamo felici di aiutarti.",
|
||||||
|
"questionSuccess": "Grazie per la tua domanda! Ti risponderemo il prima possibile.",
|
||||||
|
"nameLabel": "Nome",
|
||||||
|
"namePlaceholder": "Il tuo nome",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "tuo.email@example.com",
|
||||||
|
"questionLabel": "La tua domanda",
|
||||||
|
"questionPlaceholder": "Descrivi la tua domanda su questo prodotto...",
|
||||||
|
"photosLabelQuestion": "Allega foto alla tua domanda (opzionale)",
|
||||||
|
"submitQuestion": "Invia domanda",
|
||||||
|
"sending": "Invio in corso...",
|
||||||
|
|
||||||
|
"ratingTitle": "Valuta il prodotto",
|
||||||
|
"ratingSubtitle": "Condividi la tua esperienza con questo prodotto e aiuta altri clienti a prendere una decisione.",
|
||||||
|
"ratingSuccess": "Grazie per la tua recensione! Sarà pubblicata dopo verifica.",
|
||||||
|
"emailHelper": "La tua email non sarà pubblicata",
|
||||||
|
"ratingLabel": "Valutazione *",
|
||||||
|
"pleaseRate": "Per favore valuta",
|
||||||
|
"ratingStars": "{{rating}} su 5 stelle",
|
||||||
|
"reviewLabel": "La tua recensione (opzionale)",
|
||||||
|
"reviewPlaceholder": "Descrivi la tua esperienza con questo prodotto...",
|
||||||
|
"photosLabelRating": "Allega foto alla tua recensione (opzionale)",
|
||||||
|
"submitRating": "Invia recensione",
|
||||||
|
"errorGeneric": "Si è verificato un errore",
|
||||||
|
"errorPhotos": "Errore durante l'elaborazione delle foto",
|
||||||
|
|
||||||
|
"availabilityTitle": "Richiedi disponibilità",
|
||||||
|
"availabilitySubtitle": "Questo prodotto non è attualmente disponibile. Saremo felici di informarti non appena sarà di nuovo disponibile.",
|
||||||
|
"availabilitySuccessEmail": "Grazie per la tua richiesta! Ti informeremo via email non appena il prodotto sarà di nuovo disponibile.",
|
||||||
|
"availabilitySuccessTelegram": "Grazie per la tua richiesta! Ti informeremo tramite Telegram non appena il prodotto sarà di nuovo disponibile.",
|
||||||
|
"notificationMethodLabel": "Come desideri essere notificato?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@tuoNomeTelegram o Telegram ID",
|
||||||
|
"telegramHelper": "Inserisci il tuo nome utente Telegram (con @) o Telegram ID",
|
||||||
|
"messageLabel": "Messaggio (opzionale)",
|
||||||
|
"messagePlaceholder": "Informazioni aggiuntive o domande...",
|
||||||
|
"submitAvailability": "Richiedi disponibilità",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Seleziona foto",
|
||||||
|
"photoUploadErrorMaxFiles": "Massimo {{max}} file consentiti",
|
||||||
|
"photoUploadErrorFileType": "Sono consentiti solo file immagine (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "File troppo grande. Massimo: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} file selezionato(i)",
|
||||||
|
"photoUploadCompressed": "(compresso per il caricamento)",
|
||||||
|
"photoUploadRemove": "Rimuovi immagine",
|
||||||
|
"photoUploadLabelDefault": "Allega foto (opzionale)",
|
||||||
|
|
||||||
|
"shareTitle": "Condividi",
|
||||||
|
"shareEmbed": "Incorpora",
|
||||||
|
"shareCopyLink": "Copia link",
|
||||||
|
"shareSuccessEmbed": "Codice di incorporamento copiato negli appunti!",
|
||||||
|
"shareErrorEmbed": "Errore durante la copia del codice di incorporamento",
|
||||||
|
"shareSuccessLink": "Link copiato negli appunti!",
|
||||||
|
"shareWhatsAppText": "Dai un'occhiata a questo prodotto: {{name}}",
|
||||||
|
"shareTelegramText": "Dai un'occhiata a questo prodotto: {{name}}",
|
||||||
|
"shareEmailSubject": "Raccomandazione prodotto",
|
||||||
|
"shareEmailBody": "Ciao,\n\nvorrei consigliarti questo prodotto:\n\n{{name}}\n{{url}}\n\nCordiali saluti"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,25 +8,26 @@ export default {
|
|||||||
"articleNumber": "Numer artykułu",
|
"articleNumber": "Numer artykułu",
|
||||||
"manufacturer": "Producent",
|
"manufacturer": "Producent",
|
||||||
"inclVat": "zawiera {{vat}}% VAT",
|
"inclVat": "zawiera {{vat}}% VAT",
|
||||||
|
"inclVatSimple": "z VAT",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Nowy",
|
"new": "Nowy",
|
||||||
"weeks": "tygodnie",
|
"weeks": "Tygodnie",
|
||||||
"arriving": "Przyjazd:",
|
"arriving": "Przyjazd:",
|
||||||
"inclVatFooter": "zawiera {{vat}}% VAT,*",
|
"inclVatFooter": "zawiera {{vat}}% VAT,*",
|
||||||
"availability": "Dostępność",
|
"availability": "Dostępność",
|
||||||
"inStock": "w magazynie",
|
"inStock": "na stanie",
|
||||||
"comingSoon": "Wkrótce dostępne",
|
"comingSoon": "Wkrótce dostępne",
|
||||||
"deliveryTime": "Czas dostawy",
|
"deliveryTime": "Czas dostawy",
|
||||||
"inclShort": "zawiera",
|
"inclShort": "zaw.",
|
||||||
"vatShort": "VAT",
|
"vatShort": "VAT",
|
||||||
"weight": "Waga: {{weight}} kg",
|
"weight": "Waga: {{weight}} kg",
|
||||||
"youSave": "Oszczędzasz: {{amount}}",
|
"youSave": "Oszczędzasz: {{amount}}",
|
||||||
"cheaperThanIndividual": "Tańsze niż kupowanie osobno",
|
"cheaperThanIndividual": "Tańsze niż zakup pojedynczy",
|
||||||
"pickupPrice": "Cena odbioru: 19,90 € za sadzonkę.",
|
"pickupPrice": "Cena odbioru: 19,90 € za sadzonkę.",
|
||||||
"consistsOf": "Składa się z:",
|
"consistsOf": "Składa się z:",
|
||||||
"loadingComponentDetails": "{{index}}. Ładowanie szczegółów komponentu...",
|
"loadingComponentDetails": "{{index}}. Ładowanie szczegółów komponentu...",
|
||||||
"loadingProduct": "Produkt jest ładowany...",
|
"loadingProduct": "Ładowanie produktu...",
|
||||||
"individualPriceTotal": "Całkowita cena indywidualna:",
|
"individualPriceTotal": "Łączna cena pojedyncza:",
|
||||||
"setPrice": "Cena zestawu:",
|
"setPrice": "Cena zestawu:",
|
||||||
"yourSavings": "Twoje oszczędności:",
|
"yourSavings": "Twoje oszczędności:",
|
||||||
"similarProducts": "Podobne produkty",
|
"similarProducts": "Podobne produkty",
|
||||||
|
|||||||
61
src/i18n/locales/pl/productDialogs.js
Normal file
61
src/i18n/locales/pl/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Pytanie o produkt",
|
||||||
|
"questionSubtitle": "Masz pytanie dotyczące tego produktu? Chętnie pomożemy.",
|
||||||
|
"questionSuccess": "Dziękujemy za Twoje pytanie! Skontaktujemy się z Tobą jak najszybciej.",
|
||||||
|
"nameLabel": "Imię",
|
||||||
|
"namePlaceholder": "Twoje imię",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "twoj.email@przyklad.com",
|
||||||
|
"questionLabel": "Twoje pytanie",
|
||||||
|
"questionPlaceholder": "Opisz swoje pytanie dotyczące tego produktu...",
|
||||||
|
"photosLabelQuestion": "Dołącz zdjęcia do pytania (opcjonalnie)",
|
||||||
|
"submitQuestion": "Wyślij pytanie",
|
||||||
|
"sending": "Wysyłanie...",
|
||||||
|
|
||||||
|
"ratingTitle": "Oceń produkt",
|
||||||
|
"ratingSubtitle": "Podziel się swoimi doświadczeniami z tym produktem i pomóż innym klientom podjąć decyzję.",
|
||||||
|
"ratingSuccess": "Dziękujemy za Twoją opinię! Zostanie opublikowana po weryfikacji.",
|
||||||
|
"emailHelper": "Twój email nie zostanie opublikowany",
|
||||||
|
"ratingLabel": "Ocena *",
|
||||||
|
"pleaseRate": "Proszę oceń",
|
||||||
|
"ratingStars": "{{rating}} z 5 gwiazdek",
|
||||||
|
"reviewLabel": "Twoja opinia (opcjonalnie)",
|
||||||
|
"reviewPlaceholder": "Opisz swoje doświadczenia z tym produktem...",
|
||||||
|
"photosLabelRating": "Dołącz zdjęcia do opinii (opcjonalnie)",
|
||||||
|
"submitRating": "Prześlij opinię",
|
||||||
|
"errorGeneric": "Wystąpił błąd",
|
||||||
|
"errorPhotos": "Błąd podczas przetwarzania zdjęć",
|
||||||
|
|
||||||
|
"availabilityTitle": "Zapytaj o dostępność",
|
||||||
|
"availabilitySubtitle": "Ten produkt jest obecnie niedostępny. Poinformujemy Cię, gdy tylko będzie ponownie dostępny.",
|
||||||
|
"availabilitySuccessEmail": "Dziękujemy za zapytanie! Poinformujemy Cię mailowo, gdy produkt będzie ponownie dostępny.",
|
||||||
|
"availabilitySuccessTelegram": "Dziękujemy za zapytanie! Poinformujemy Cię przez Telegram, gdy produkt będzie ponownie dostępny.",
|
||||||
|
"notificationMethodLabel": "Jak chcesz otrzymać powiadomienie?",
|
||||||
|
"telegramBotLabel": "Bot Telegram",
|
||||||
|
"telegramIdLabel": "ID Telegram",
|
||||||
|
"telegramPlaceholder": "@twojTelegram lub ID Telegram",
|
||||||
|
"telegramHelper": "Wpisz swoją nazwę użytkownika Telegram (z @) lub ID Telegram",
|
||||||
|
"messageLabel": "Wiadomość (opcjonalnie)",
|
||||||
|
"messagePlaceholder": "Dodatkowe informacje lub pytania...",
|
||||||
|
"submitAvailability": "Zapytaj o dostępność",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Wybierz zdjęcia",
|
||||||
|
"photoUploadErrorMaxFiles": "Dozwolona maksymalna liczba plików to {{max}}",
|
||||||
|
"photoUploadErrorFileType": "Dozwolone są tylko pliki graficzne (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Plik jest za duży. Maksymalny rozmiar: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "Wybrano {{count}} plik(ów)",
|
||||||
|
"photoUploadCompressed": "(skompresowane do wysłania)",
|
||||||
|
"photoUploadRemove": "Usuń obraz",
|
||||||
|
"photoUploadLabelDefault": "Dołącz zdjęcia (opcjonalnie)",
|
||||||
|
|
||||||
|
"shareTitle": "Udostępnij",
|
||||||
|
"shareEmbed": "Osadź",
|
||||||
|
"shareCopyLink": "Kopiuj link",
|
||||||
|
"shareSuccessEmbed": "Kod do osadzenia skopiowany do schowka!",
|
||||||
|
"shareErrorEmbed": "Błąd podczas kopiowania kodu do osadzenia",
|
||||||
|
"shareSuccessLink": "Link skopiowany do schowka!",
|
||||||
|
"shareWhatsAppText": "Sprawdź ten produkt: {{name}}",
|
||||||
|
"shareTelegramText": "Sprawdź ten produkt: {{name}}",
|
||||||
|
"shareEmailSubject": "Polecenie produktu",
|
||||||
|
"shareEmailBody": "Cześć,\n\nChciałbym polecić Ci ten produkt:\n\n{{name}}\n{{url}}\n\nPozdrawiam"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,14 +8,15 @@ export default {
|
|||||||
"articleNumber": "Număr articol",
|
"articleNumber": "Număr articol",
|
||||||
"manufacturer": "Producător",
|
"manufacturer": "Producător",
|
||||||
"inclVat": "incl. {{vat}}% TVA",
|
"inclVat": "incl. {{vat}}% TVA",
|
||||||
|
"inclVatSimple": "incl. TVA",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Nou",
|
"new": "Nou",
|
||||||
"weeks": "săptămâni",
|
"weeks": "Săptămâni",
|
||||||
"arriving": "Sosire:",
|
"arriving": "Sosire:",
|
||||||
"inclVatFooter": "incl. {{vat}}% TVA,*",
|
"inclVatFooter": "incl. {{vat}}% TVA,*",
|
||||||
"availability": "Disponibilitate",
|
"availability": "Disponibilitate",
|
||||||
"inStock": "în stoc",
|
"inStock": "în stoc",
|
||||||
"comingSoon": "În curând disponibil",
|
"comingSoon": "În curând",
|
||||||
"deliveryTime": "Timp de livrare",
|
"deliveryTime": "Timp de livrare",
|
||||||
"inclShort": "incl.",
|
"inclShort": "incl.",
|
||||||
"vatShort": "TVA",
|
"vatShort": "TVA",
|
||||||
@@ -25,7 +26,7 @@ export default {
|
|||||||
"pickupPrice": "Preț ridicare: 19,90 € per butaș.",
|
"pickupPrice": "Preț ridicare: 19,90 € per butaș.",
|
||||||
"consistsOf": "Constă din:",
|
"consistsOf": "Constă din:",
|
||||||
"loadingComponentDetails": "{{index}}. Se încarcă detalii componentă...",
|
"loadingComponentDetails": "{{index}}. Se încarcă detalii componentă...",
|
||||||
"loadingProduct": "Produsul se încarcă...",
|
"loadingProduct": "Se încarcă produsul...",
|
||||||
"individualPriceTotal": "Preț individual total:",
|
"individualPriceTotal": "Preț individual total:",
|
||||||
"setPrice": "Preț set:",
|
"setPrice": "Preț set:",
|
||||||
"yourSavings": "Economiile dvs.:",
|
"yourSavings": "Economiile dvs.:",
|
||||||
|
|||||||
61
src/i18n/locales/ro/productDialogs.js
Normal file
61
src/i18n/locales/ro/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Întrebare despre produs",
|
||||||
|
"questionSubtitle": "Aveți o întrebare despre acest produs? Suntem bucuroși să vă ajutăm.",
|
||||||
|
"questionSuccess": "Vă mulțumim pentru întrebare! Vă vom contacta cât mai curând posibil.",
|
||||||
|
"nameLabel": "Nume",
|
||||||
|
"namePlaceholder": "Numele dumneavoastră",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "adresa.dumneavoastră@example.com",
|
||||||
|
"questionLabel": "Întrebarea dumneavoastră",
|
||||||
|
"questionPlaceholder": "Descrieți întrebarea dumneavoastră despre acest produs...",
|
||||||
|
"photosLabelQuestion": "Atașați fotografii la întrebare (opțional)",
|
||||||
|
"submitQuestion": "Trimite întrebare",
|
||||||
|
"sending": "Se trimite...",
|
||||||
|
|
||||||
|
"ratingTitle": "Evaluează produsul",
|
||||||
|
"ratingSubtitle": "Împărtășiți experiența dumneavoastră cu acest produs și ajutați alți clienți să ia o decizie.",
|
||||||
|
"ratingSuccess": "Vă mulțumim pentru recenzie! Aceasta va fi publicată după verificare.",
|
||||||
|
"emailHelper": "Emailul dumneavoastră nu va fi publicat",
|
||||||
|
"ratingLabel": "Evaluare *",
|
||||||
|
"pleaseRate": "Vă rugăm să evaluați",
|
||||||
|
"ratingStars": "{{rating}} din 5 stele",
|
||||||
|
"reviewLabel": "Recenzia dumneavoastră (opțional)",
|
||||||
|
"reviewPlaceholder": "Descrieți experiențele dumneavoastră cu acest produs...",
|
||||||
|
"photosLabelRating": "Atașați fotografii la recenzie (opțional)",
|
||||||
|
"submitRating": "Trimite recenzia",
|
||||||
|
"errorGeneric": "A apărut o eroare",
|
||||||
|
"errorPhotos": "Eroare la procesarea fotografiilor",
|
||||||
|
|
||||||
|
"availabilityTitle": "Solicită disponibilitate",
|
||||||
|
"availabilitySubtitle": "Acest produs nu este disponibil momentan. Vă vom informa cu plăcere de îndată ce va fi din nou în stoc.",
|
||||||
|
"availabilitySuccessEmail": "Vă mulțumim pentru solicitare! Vă vom notifica prin email de îndată ce produsul va fi din nou disponibil.",
|
||||||
|
"availabilitySuccessTelegram": "Vă mulțumim pentru solicitare! Vă vom notifica prin Telegram de îndată ce produsul va fi din nou disponibil.",
|
||||||
|
"notificationMethodLabel": "Cum doriți să fiți notificat?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@numeleTauTelegram sau Telegram ID",
|
||||||
|
"telegramHelper": "Introduceți numele dumneavoastră de utilizator Telegram (cu @) sau Telegram ID",
|
||||||
|
"messageLabel": "Mesaj (opțional)",
|
||||||
|
"messagePlaceholder": "Informații suplimentare sau întrebări...",
|
||||||
|
"submitAvailability": "Solicită disponibilitate",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Selectați fotografii",
|
||||||
|
"photoUploadErrorMaxFiles": "Maximum {{max}} fișiere permise",
|
||||||
|
"photoUploadErrorFileType": "Sunt permise doar fișiere imagine (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Fișier prea mare. Maxim: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} fișier(e) selectat(e)",
|
||||||
|
"photoUploadCompressed": "(comprimat pentru încărcare)",
|
||||||
|
"photoUploadRemove": "Elimină imaginea",
|
||||||
|
"photoUploadLabelDefault": "Atașați fotografii (opțional)",
|
||||||
|
|
||||||
|
"shareTitle": "Distribuie",
|
||||||
|
"shareEmbed": "Încorporează",
|
||||||
|
"shareCopyLink": "Copiază linkul",
|
||||||
|
"shareSuccessEmbed": "Codul de încorporare a fost copiat în clipboard!",
|
||||||
|
"shareErrorEmbed": "Eroare la copierea codului de încorporare",
|
||||||
|
"shareSuccessLink": "Linkul a fost copiat în clipboard!",
|
||||||
|
"shareWhatsAppText": "Vezi acest produs: {{name}}",
|
||||||
|
"shareTelegramText": "Vezi acest produs: {{name}}",
|
||||||
|
"shareEmailSubject": "Recomandare produs",
|
||||||
|
"shareEmailBody": "Bună,\n\nAș dori să-ți recomand acest produs:\n\n{{name}}\n{{url}}\n\nCu stimă"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Артикул",
|
"articleNumber": "Артикул",
|
||||||
"manufacturer": "Производитель",
|
"manufacturer": "Производитель",
|
||||||
"inclVat": "включая {{vat}}% НДС",
|
"inclVat": "включая {{vat}}% НДС",
|
||||||
|
"inclVatSimple": "включая НДС",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Новый",
|
"new": "Новый",
|
||||||
"weeks": "недели",
|
"weeks": "Недели",
|
||||||
"arriving": "Прибытие:",
|
"arriving": "Прибытие:",
|
||||||
"inclVatFooter": "включая {{vat}}% НДС,*",
|
"inclVatFooter": "включая {{vat}}% НДС,*",
|
||||||
"availability": "Наличие",
|
"availability": "Наличие",
|
||||||
@@ -22,10 +23,10 @@ export default {
|
|||||||
"weight": "Вес: {{weight}} кг",
|
"weight": "Вес: {{weight}} кг",
|
||||||
"youSave": "Вы экономите: {{amount}}",
|
"youSave": "Вы экономите: {{amount}}",
|
||||||
"cheaperThanIndividual": "Дешевле, чем покупать по отдельности",
|
"cheaperThanIndividual": "Дешевле, чем покупать по отдельности",
|
||||||
"pickupPrice": "Цена при самовывозе: €19.90 за черенок.",
|
"pickupPrice": "Цена при самовывозе: 19,90 € за черенок.",
|
||||||
"consistsOf": "Состоит из:",
|
"consistsOf": "Состоит из:",
|
||||||
"loadingComponentDetails": "{{index}}. Загрузка деталей компонента...",
|
"loadingComponentDetails": "{{index}}. Загрузка деталей компонента...",
|
||||||
"loadingProduct": "Продукт загружается...",
|
"loadingProduct": "Загрузка продукта...",
|
||||||
"individualPriceTotal": "Общая цена по отдельности:",
|
"individualPriceTotal": "Общая цена по отдельности:",
|
||||||
"setPrice": "Цена набора:",
|
"setPrice": "Цена набора:",
|
||||||
"yourSavings": "Ваша экономия:",
|
"yourSavings": "Ваша экономия:",
|
||||||
|
|||||||
61
src/i18n/locales/ru/productDialogs.js
Normal file
61
src/i18n/locales/ru/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Вопрос о товаре",
|
||||||
|
"questionSubtitle": "У вас есть вопрос по этому товару? Мы рады помочь вам.",
|
||||||
|
"questionSuccess": "Спасибо за ваш вопрос! Мы свяжемся с вами как можно скорее.",
|
||||||
|
"nameLabel": "Имя",
|
||||||
|
"namePlaceholder": "Ваше имя",
|
||||||
|
"emailLabel": "Электронная почта",
|
||||||
|
"emailPlaceholder": "your.email@example.com",
|
||||||
|
"questionLabel": "Ваш вопрос",
|
||||||
|
"questionPlaceholder": "Опишите ваш вопрос по этому товару...",
|
||||||
|
"photosLabelQuestion": "Прикрепите фотографии к вашему вопросу (необязательно)",
|
||||||
|
"submitQuestion": "Отправить вопрос",
|
||||||
|
"sending": "Отправка...",
|
||||||
|
|
||||||
|
"ratingTitle": "Оцените товар",
|
||||||
|
"ratingSubtitle": "Поделитесь своим опытом использования этого товара и помогите другим покупателям сделать выбор.",
|
||||||
|
"ratingSuccess": "Спасибо за ваш отзыв! Он будет опубликован после проверки.",
|
||||||
|
"emailHelper": "Ваш email не будет опубликован",
|
||||||
|
"ratingLabel": "Оценка *",
|
||||||
|
"pleaseRate": "Пожалуйста, оцените",
|
||||||
|
"ratingStars": "{{rating}} из 5 звезд",
|
||||||
|
"reviewLabel": "Ваш отзыв (необязательно)",
|
||||||
|
"reviewPlaceholder": "Опишите ваш опыт использования этого товара...",
|
||||||
|
"photosLabelRating": "Прикрепите фотографии к вашему отзыву (необязательно)",
|
||||||
|
"submitRating": "Отправить отзыв",
|
||||||
|
"errorGeneric": "Произошла ошибка",
|
||||||
|
"errorPhotos": "Ошибка при обработке фотографий",
|
||||||
|
|
||||||
|
"availabilityTitle": "Запросить наличие",
|
||||||
|
"availabilitySubtitle": "Этот товар в настоящее время недоступен. Мы с радостью сообщим вам, как только он появится в наличии.",
|
||||||
|
"availabilitySuccessEmail": "Спасибо за ваш запрос! Мы уведомим вас по электронной почте, как только товар снова будет доступен.",
|
||||||
|
"availabilitySuccessTelegram": "Спасибо за ваш запрос! Мы уведомим вас через Telegram, как только товар снова будет доступен.",
|
||||||
|
"notificationMethodLabel": "Как вы хотите получить уведомление?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@yourTelegramName or Telegram ID",
|
||||||
|
"telegramHelper": "Введите ваше имя пользователя Telegram (с @) или Telegram ID",
|
||||||
|
"messageLabel": "Сообщение (необязательно)",
|
||||||
|
"messagePlaceholder": "Дополнительная информация или вопросы...",
|
||||||
|
"submitAvailability": "Запросить наличие",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Выбрать фотографии",
|
||||||
|
"photoUploadErrorMaxFiles": "Максимум разрешено {{max}} файлов",
|
||||||
|
"photoUploadErrorFileType": "Разрешены только изображения (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Файл слишком большой. Максимум: {{maxSize}}МБ",
|
||||||
|
"photoUploadSelectedFiles": "Выбрано {{count}} файл(ов)",
|
||||||
|
"photoUploadCompressed": "(сжат для загрузки)",
|
||||||
|
"photoUploadRemove": "Удалить изображение",
|
||||||
|
"photoUploadLabelDefault": "Прикрепить фотографии (необязательно)",
|
||||||
|
|
||||||
|
"shareTitle": "Поделиться",
|
||||||
|
"shareEmbed": "Встроить",
|
||||||
|
"shareCopyLink": "Копировать ссылку",
|
||||||
|
"shareSuccessEmbed": "Код для встраивания скопирован в буфер обмена!",
|
||||||
|
"shareErrorEmbed": "Ошибка при копировании кода для встраивания",
|
||||||
|
"shareSuccessLink": "Ссылка скопирована в буфер обмена!",
|
||||||
|
"shareWhatsAppText": "Посмотрите этот товар: {{name}}",
|
||||||
|
"shareTelegramText": "Посмотрите этот товар: {{name}}",
|
||||||
|
"shareEmailSubject": "Рекомендация товара",
|
||||||
|
"shareEmailBody": "Здравствуйте,\n\nХочу порекомендовать вам этот товар:\n\n{{name}}\n{{url}}\n\nС наилучшими пожеланиями"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
export default {
|
export default {
|
||||||
"loading": "Načítava sa produkt...",
|
"loading": "Načítavam produkt...",
|
||||||
"loadingDescription": "Načítava sa popis produktu...",
|
"loadingDescription": "Načítavam popis produktu...",
|
||||||
"notFound": "Produkt nenájdený",
|
"notFound": "Produkt nenájdený",
|
||||||
"notFoundDescription": "Produkt, ktorý hľadáte, neexistuje alebo bol odstránený.",
|
"notFoundDescription": "Produkt, ktorý hľadáte, neexistuje alebo bol odstránený.",
|
||||||
"backToHome": "Späť na domovskú stránku",
|
"backToHome": "Späť na domovskú stránku",
|
||||||
"error": "Chyba",
|
"error": "Chyba",
|
||||||
"articleNumber": "Číslo článku",
|
"articleNumber": "Číslo produktu",
|
||||||
"manufacturer": "Výrobca",
|
"manufacturer": "Výrobca",
|
||||||
"inclVat": "vrátane {{vat}}% DPH",
|
"inclVat": "vrátane {{vat}}% DPH",
|
||||||
|
"inclVatSimple": "vrátane DPH",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Nové",
|
"new": "Nové",
|
||||||
"weeks": "týždne",
|
"weeks": "Týždne",
|
||||||
"arriving": "Príchod:",
|
"arriving": "Príchod:",
|
||||||
"inclVatFooter": "vrátane {{vat}}% DPH,*",
|
"inclVatFooter": "vrátane {{vat}}% DPH,*",
|
||||||
"availability": "Dostupnosť",
|
"availability": "Dostupnosť",
|
||||||
@@ -24,8 +25,8 @@ export default {
|
|||||||
"cheaperThanIndividual": "Lacnejšie ako kúpa jednotlivých kusov",
|
"cheaperThanIndividual": "Lacnejšie ako kúpa jednotlivých kusov",
|
||||||
"pickupPrice": "Cena pri osobnom odbere: 19,90 € za odrezok.",
|
"pickupPrice": "Cena pri osobnom odbere: 19,90 € za odrezok.",
|
||||||
"consistsOf": "Skladá sa z:",
|
"consistsOf": "Skladá sa z:",
|
||||||
"loadingComponentDetails": "{{index}}. Načítavajú sa detaily komponentu...",
|
"loadingComponentDetails": "{{index}}. Načítavam detaily komponentu...",
|
||||||
"loadingProduct": "Produkt sa načítava...",
|
"loadingProduct": "Načítavam produkt...",
|
||||||
"individualPriceTotal": "Celková cena jednotlivých kusov:",
|
"individualPriceTotal": "Celková cena jednotlivých kusov:",
|
||||||
"setPrice": "Cena setu:",
|
"setPrice": "Cena setu:",
|
||||||
"yourSavings": "Vaša úspora:",
|
"yourSavings": "Vaša úspora:",
|
||||||
|
|||||||
61
src/i18n/locales/sk/productDialogs.js
Normal file
61
src/i18n/locales/sk/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Otázka o produkte",
|
||||||
|
"questionSubtitle": "Máte otázku ohľadom tohto produktu? Radi vám pomôžeme.",
|
||||||
|
"questionSuccess": "Ďakujeme za vašu otázku! Čoskoro sa vám ozveme.",
|
||||||
|
"nameLabel": "Meno",
|
||||||
|
"namePlaceholder": "Vaše meno",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "vas.email@priklad.sk",
|
||||||
|
"questionLabel": "Vaša otázka",
|
||||||
|
"questionPlaceholder": "Popíšte svoju otázku ohľadom tohto produktu...",
|
||||||
|
"photosLabelQuestion": "Priložte fotografie k vašej otázke (voliteľné)",
|
||||||
|
"submitQuestion": "Odoslať otázku",
|
||||||
|
"sending": "Odosielanie...",
|
||||||
|
|
||||||
|
"ratingTitle": "Ohodnoťte produkt",
|
||||||
|
"ratingSubtitle": "Podeľte sa o svoje skúsenosti s týmto produktom a pomôžte ostatným zákazníkom pri rozhodovaní.",
|
||||||
|
"ratingSuccess": "Ďakujeme za vašu recenziu! Bude zverejnená po overení.",
|
||||||
|
"emailHelper": "Váš email nebude zverejnený",
|
||||||
|
"ratingLabel": "Hodnotenie *",
|
||||||
|
"pleaseRate": "Prosím ohodnoťte",
|
||||||
|
"ratingStars": "{{rating}} z 5 hviezdičiek",
|
||||||
|
"reviewLabel": "Vaša recenzia (voliteľné)",
|
||||||
|
"reviewPlaceholder": "Popíšte svoje skúsenosti s týmto produktom...",
|
||||||
|
"photosLabelRating": "Priložte fotografie k vašej recenzii (voliteľné)",
|
||||||
|
"submitRating": "Odoslať recenziu",
|
||||||
|
"errorGeneric": "Vyskytla sa chyba",
|
||||||
|
"errorPhotos": "Chyba pri spracovaní fotografií",
|
||||||
|
|
||||||
|
"availabilityTitle": "Požiadať o dostupnosť",
|
||||||
|
"availabilitySubtitle": "Tento produkt momentálne nie je dostupný. Radi vás budeme informovať, akonáhle bude opäť na sklade.",
|
||||||
|
"availabilitySuccessEmail": "Ďakujeme za vašu žiadosť! O dostupnosti produktu vás budeme informovať emailom.",
|
||||||
|
"availabilitySuccessTelegram": "Ďakujeme za vašu žiadosť! O dostupnosti produktu vás budeme informovať cez Telegram.",
|
||||||
|
"notificationMethodLabel": "Ako by ste chceli byť informovaní?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@vasTelegramMeno alebo Telegram ID",
|
||||||
|
"telegramHelper": "Zadajte svoje Telegram používateľské meno (s @) alebo Telegram ID",
|
||||||
|
"messageLabel": "Správa (voliteľné)",
|
||||||
|
"messagePlaceholder": "Dodatočné informácie alebo otázky...",
|
||||||
|
"submitAvailability": "Požiadať o dostupnosť",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Vybrať fotografie",
|
||||||
|
"photoUploadErrorMaxFiles": "Maximálne povolených {{max}} súborov",
|
||||||
|
"photoUploadErrorFileType": "Povolené sú len obrázkové súbory (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Súbor je príliš veľký. Maximálne: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "Vybraných {{count}} súborov",
|
||||||
|
"photoUploadCompressed": "(komprimované pre nahrávanie)",
|
||||||
|
"photoUploadRemove": "Odstrániť obrázok",
|
||||||
|
"photoUploadLabelDefault": "Priložiť fotografie (voliteľné)",
|
||||||
|
|
||||||
|
"shareTitle": "Zdieľať",
|
||||||
|
"shareEmbed": "Vložiť",
|
||||||
|
"shareCopyLink": "Kopírovať odkaz",
|
||||||
|
"shareSuccessEmbed": "Kód na vloženie bol skopírovaný do schránky!",
|
||||||
|
"shareErrorEmbed": "Chyba pri kopírovaní kódu na vloženie",
|
||||||
|
"shareSuccessLink": "Odkaz bol skopírovaný do schránky!",
|
||||||
|
"shareWhatsAppText": "Pozrite si tento produkt: {{name}}",
|
||||||
|
"shareTelegramText": "Pozrite si tento produkt: {{name}}",
|
||||||
|
"shareEmailSubject": "Odporúčanie produktu",
|
||||||
|
"shareEmailBody": "Dobrý deň,\n\nchcel by som vám odporučiť tento produkt:\n\n{{name}}\n{{url}}\n\nS pozdravom"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Številka artikla",
|
"articleNumber": "Številka artikla",
|
||||||
"manufacturer": "Proizvajalec",
|
"manufacturer": "Proizvajalec",
|
||||||
"inclVat": "vključno z {{vat}}% DDV",
|
"inclVat": "vključno z {{vat}}% DDV",
|
||||||
|
"inclVatSimple": "vključno z DDV",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Novo",
|
"new": "Novo",
|
||||||
"weeks": "tedni",
|
"weeks": "Tedni",
|
||||||
"arriving": "Prihod:",
|
"arriving": "Prihod:",
|
||||||
"inclVatFooter": "vključno z {{vat}}% DDV,*",
|
"inclVatFooter": "vključno z {{vat}}% DDV,*",
|
||||||
"availability": "Razpoložljivost",
|
"availability": "Razpoložljivost",
|
||||||
@@ -25,7 +26,7 @@ export default {
|
|||||||
"pickupPrice": "Cena prevzema: 19,90 € na potaknjenca.",
|
"pickupPrice": "Cena prevzema: 19,90 € na potaknjenca.",
|
||||||
"consistsOf": "Sestavljeno iz:",
|
"consistsOf": "Sestavljeno iz:",
|
||||||
"loadingComponentDetails": "{{index}}. Nalaganje podrobnosti komponente...",
|
"loadingComponentDetails": "{{index}}. Nalaganje podrobnosti komponente...",
|
||||||
"loadingProduct": "Izdelek se nalaga...",
|
"loadingProduct": "Nalaganje izdelka...",
|
||||||
"individualPriceTotal": "Skupna cena posamezno:",
|
"individualPriceTotal": "Skupna cena posamezno:",
|
||||||
"setPrice": "Cena kompleta:",
|
"setPrice": "Cena kompleta:",
|
||||||
"yourSavings": "Vaš prihranek:",
|
"yourSavings": "Vaš prihranek:",
|
||||||
@@ -33,12 +34,12 @@ export default {
|
|||||||
"countDisplay": {
|
"countDisplay": {
|
||||||
"noProducts": "0 izdelkov",
|
"noProducts": "0 izdelkov",
|
||||||
"oneProduct": "1 izdelek",
|
"oneProduct": "1 izdelek",
|
||||||
"multipleProducts": "{{count}} izdelki",
|
"multipleProducts": "{{count}} izdelkov",
|
||||||
"filteredProducts": "{{filtered}} od {{total}} izdelkov",
|
"filteredProducts": "{{filtered}} od {{total}} izdelkov",
|
||||||
"filteredOneProduct": "{{filtered}} od 1 izdelka",
|
"filteredOneProduct": "{{filtered}} od 1 izdelka",
|
||||||
"xOfYProducts": "{{x}} od {{y}} izdelkov"
|
"xOfYProducts": "{{x}} od {{y}} izdelkov"
|
||||||
},
|
},
|
||||||
"removeFiltersToSee": "Odstranite filtre, da vidite izdelke",
|
"removeFiltersToSee": "Odstranite filtre za prikaz izdelkov",
|
||||||
"outOfStock": "Ni na zalogi",
|
"outOfStock": "Ni na zalogi",
|
||||||
"fromXProducts": "od {{count}} izdelkov",
|
"fromXProducts": "od {{count}} izdelkov",
|
||||||
"discount": {
|
"discount": {
|
||||||
|
|||||||
61
src/i18n/locales/sl/productDialogs.js
Normal file
61
src/i18n/locales/sl/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Vprašanje o izdelku",
|
||||||
|
"questionSubtitle": "Imate vprašanje o tem izdelku? Z veseljem vam pomagamo.",
|
||||||
|
"questionSuccess": "Hvala za vaše vprašanje! Odgovorili vam bomo čim prej.",
|
||||||
|
"nameLabel": "Ime",
|
||||||
|
"namePlaceholder": "Vaše ime",
|
||||||
|
"emailLabel": "E-pošta",
|
||||||
|
"emailPlaceholder": "vas.email@primer.si",
|
||||||
|
"questionLabel": "Vaše vprašanje",
|
||||||
|
"questionPlaceholder": "Opis vašega vprašanja o tem izdelku...",
|
||||||
|
"photosLabelQuestion": "Priložite fotografije k vašemu vprašanju (neobvezno)",
|
||||||
|
"submitQuestion": "Pošlji vprašanje",
|
||||||
|
"sending": "Pošiljanje...",
|
||||||
|
|
||||||
|
"ratingTitle": "Oceni izdelek",
|
||||||
|
"ratingSubtitle": "Delite svoje izkušnje z izdelkom in pomagajte drugim kupcem pri odločitvi.",
|
||||||
|
"ratingSuccess": "Hvala za vašo oceno! Objavljena bo po preverjanju.",
|
||||||
|
"emailHelper": "Vaš e-poštni naslov ne bo objavljen",
|
||||||
|
"ratingLabel": "Ocena *",
|
||||||
|
"pleaseRate": "Prosimo, ocenite",
|
||||||
|
"ratingStars": "{{rating}} od 5 zvezdic",
|
||||||
|
"reviewLabel": "Vaša ocena (neobvezno)",
|
||||||
|
"reviewPlaceholder": "Opis vaših izkušenj s tem izdelkom...",
|
||||||
|
"photosLabelRating": "Priložite fotografije k vaši oceni (neobvezno)",
|
||||||
|
"submitRating": "Oddaj oceno",
|
||||||
|
"errorGeneric": "Prišlo je do napake",
|
||||||
|
"errorPhotos": "Napaka pri obdelavi fotografij",
|
||||||
|
|
||||||
|
"availabilityTitle": "Povprašajte o razpoložljivosti",
|
||||||
|
"availabilitySubtitle": "Ta izdelek trenutno ni na voljo. Z veseljem vas bomo obvestili, ko bo spet na zalogi.",
|
||||||
|
"availabilitySuccessEmail": "Hvala za vaše povpraševanje! Obvestili vas bomo po e-pošti, ko bo izdelek spet na voljo.",
|
||||||
|
"availabilitySuccessTelegram": "Hvala za vaše povpraševanje! Obvestili vas bomo preko Telegrama, ko bo izdelek spet na voljo.",
|
||||||
|
"notificationMethodLabel": "Kako želite biti obveščeni?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@vašeTelegramIme ali Telegram ID",
|
||||||
|
"telegramHelper": "Vnesite svoje Telegram uporabniško ime (z @) ali Telegram ID",
|
||||||
|
"messageLabel": "Sporočilo (neobvezno)",
|
||||||
|
"messagePlaceholder": "Dodatne informacije ali vprašanja...",
|
||||||
|
"submitAvailability": "Povprašajte o razpoložljivosti",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Izberite fotografije",
|
||||||
|
"photoUploadErrorMaxFiles": "Dovoljeno največ {{max}} datotek",
|
||||||
|
"photoUploadErrorFileType": "Dovoljene so samo slikovne datoteke (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Datoteka je prevelika. Največ: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} datoteka(e) izbrana(e)",
|
||||||
|
"photoUploadCompressed": "(stisnjeno za nalaganje)",
|
||||||
|
"photoUploadRemove": "Odstrani sliko",
|
||||||
|
"photoUploadLabelDefault": "Priložite fotografije (neobvezno)",
|
||||||
|
|
||||||
|
"shareTitle": "Deli",
|
||||||
|
"shareEmbed": "Vstavi",
|
||||||
|
"shareCopyLink": "Kopiraj povezavo",
|
||||||
|
"shareSuccessEmbed": "Koda za vstavljanje je bila kopirana v odložišče!",
|
||||||
|
"shareErrorEmbed": "Napaka pri kopiranju kode za vstavljanje",
|
||||||
|
"shareSuccessLink": "Povezava je bila kopirana v odložišče!",
|
||||||
|
"shareWhatsAppText": "Oglejte si ta izdelek: {{name}}",
|
||||||
|
"shareTelegramText": "Oglejte si ta izdelek: {{name}}",
|
||||||
|
"shareEmailSubject": "Priporočilo izdelka",
|
||||||
|
"shareEmailBody": "Pozdravljeni,\n\nrad bi vam priporočil ta izdelek:\n\n{{name}}\n{{url}}\n\nLep pozdrav"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Numri i artikullit",
|
"articleNumber": "Numri i artikullit",
|
||||||
"manufacturer": "Prodhuesi",
|
"manufacturer": "Prodhuesi",
|
||||||
"inclVat": "përfshirë {{vat}}% TVSH",
|
"inclVat": "përfshirë {{vat}}% TVSH",
|
||||||
|
"inclVatSimple": "përfshirë TVSH",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "I ri",
|
"new": "I ri",
|
||||||
"weeks": "javë",
|
"weeks": "Javë",
|
||||||
"arriving": "Arritja:",
|
"arriving": "Arritja:",
|
||||||
"inclVatFooter": "përfshirë {{vat}}% TVSH,*",
|
"inclVatFooter": "përfshirë {{vat}}% TVSH,*",
|
||||||
"availability": "Disponueshmëria",
|
"availability": "Disponueshmëria",
|
||||||
@@ -25,7 +26,7 @@ export default {
|
|||||||
"pickupPrice": "Çmimi për marrje: 19,90 € për prerje.",
|
"pickupPrice": "Çmimi për marrje: 19,90 € për prerje.",
|
||||||
"consistsOf": "Përbëhet nga:",
|
"consistsOf": "Përbëhet nga:",
|
||||||
"loadingComponentDetails": "{{index}}. Duke ngarkuar detajet e komponentit...",
|
"loadingComponentDetails": "{{index}}. Duke ngarkuar detajet e komponentit...",
|
||||||
"loadingProduct": "Produkti po ngarkohet...",
|
"loadingProduct": "Duke ngarkuar produktin...",
|
||||||
"individualPriceTotal": "Çmimi total individual:",
|
"individualPriceTotal": "Çmimi total individual:",
|
||||||
"setPrice": "Çmimi i setit:",
|
"setPrice": "Çmimi i setit:",
|
||||||
"yourSavings": "Kursimet tuaja:",
|
"yourSavings": "Kursimet tuaja:",
|
||||||
|
|||||||
61
src/i18n/locales/sq/productDialogs.js
Normal file
61
src/i18n/locales/sq/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Pyetje rreth produktit",
|
||||||
|
"questionSubtitle": "Keni një pyetje rreth këtij produkti? Ne jemi të lumtur t'ju ndihmojmë.",
|
||||||
|
"questionSuccess": "Faleminderit për pyetjen tuaj! Do t'ju kontaktojmë sa më shpejt të jetë e mundur.",
|
||||||
|
"nameLabel": "Emri",
|
||||||
|
"namePlaceholder": "Emri juaj",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "emaili.juaj@example.com",
|
||||||
|
"questionLabel": "Pyetja juaj",
|
||||||
|
"questionPlaceholder": "Përshkruani pyetjen tuaj rreth këtij produkti...",
|
||||||
|
"photosLabelQuestion": "Bashkëngjitni foto me pyetjen tuaj (opsionale)",
|
||||||
|
"submitQuestion": "Dërgo pyetjen",
|
||||||
|
"sending": "Duke dërguar...",
|
||||||
|
|
||||||
|
"ratingTitle": "Vlerëso produktin",
|
||||||
|
"ratingSubtitle": "Ndani përvojën tuaj me këtë produkt dhe ndihmoni klientët e tjerë të marrin vendimin.",
|
||||||
|
"ratingSuccess": "Faleminderit për vlerësimin tuaj! Ai do të publikohet pas verifikimit.",
|
||||||
|
"emailHelper": "Emaili juaj nuk do të publikohet",
|
||||||
|
"ratingLabel": "Vlerësimi *",
|
||||||
|
"pleaseRate": "Ju lutemi vlerësoni",
|
||||||
|
"ratingStars": "{{rating}} nga 5 yje",
|
||||||
|
"reviewLabel": "Rishikimi juaj (opsional)",
|
||||||
|
"reviewPlaceholder": "Përshkruani përvojat tuaja me këtë produkt...",
|
||||||
|
"photosLabelRating": "Bashkëngjitni foto me rishikimin tuaj (opsionale)",
|
||||||
|
"submitRating": "Dërgo rishikimin",
|
||||||
|
"errorGeneric": "Ndodhi një gabim",
|
||||||
|
"errorPhotos": "Gabim gjatë përpunimit të fotove",
|
||||||
|
|
||||||
|
"availabilityTitle": "Kërko disponueshmërinë",
|
||||||
|
"availabilitySubtitle": "Ky produkt aktualisht nuk është në dispozicion. Ne do të jemi të lumtur t'ju njoftojmë sapo të jetë përsëri në stok.",
|
||||||
|
"availabilitySuccessEmail": "Faleminderit për kërkesën tuaj! Do t'ju njoftojmë me email sapo produkti të jetë përsëri në dispozicion.",
|
||||||
|
"availabilitySuccessTelegram": "Faleminderit për kërkesën tuaj! Do t'ju njoftojmë përmes Telegram sapo produkti të jetë përsëri në dispozicion.",
|
||||||
|
"notificationMethodLabel": "Si dëshironi të njoftoheni?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@emriJuajTelegram ose Telegram ID",
|
||||||
|
"telegramHelper": "Shkruani emrin tuaj të përdoruesit në Telegram (me @) ose Telegram ID-në tuaj",
|
||||||
|
"messageLabel": "Mesazh (opsional)",
|
||||||
|
"messagePlaceholder": "Informacione shtesë ose pyetje...",
|
||||||
|
"submitAvailability": "Kërko disponueshmërinë",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Zgjidh foto",
|
||||||
|
"photoUploadErrorMaxFiles": "Maksimumi {{max}} skedarë të lejuar",
|
||||||
|
"photoUploadErrorFileType": "Lejohen vetëm skedarë imazhi (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Skedari është shumë i madh. Maksimumi: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} skedar(e) të zgjedhur",
|
||||||
|
"photoUploadCompressed": "(i kompresuar për ngarkim)",
|
||||||
|
"photoUploadRemove": "Hiq imazhin",
|
||||||
|
"photoUploadLabelDefault": "Bashkëngjit foto (opsionale)",
|
||||||
|
|
||||||
|
"shareTitle": "Ndaj",
|
||||||
|
"shareEmbed": "Fut",
|
||||||
|
"shareCopyLink": "Kopjo lidhjen",
|
||||||
|
"shareSuccessEmbed": "Kodi i futjes u kopjua në memorien e përkohshme!",
|
||||||
|
"shareErrorEmbed": "Gabim gjatë kopjimit të kodit të futjes",
|
||||||
|
"shareSuccessLink": "Lidhja u kopjua në memorien e përkohshme!",
|
||||||
|
"shareWhatsAppText": "Shiko këtë produkt: {{name}}",
|
||||||
|
"shareTelegramText": "Shiko këtë produkt: {{name}}",
|
||||||
|
"shareEmailSubject": "Rekomandim produkti",
|
||||||
|
"shareEmailBody": "Përshëndetje,\n\nDëshiroj t'ju rekomandoj këtë produkt:\n\n{{name}}\n{{url}}\n\nMe respekt"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Broj artikla",
|
"articleNumber": "Broj artikla",
|
||||||
"manufacturer": "Proizvođač",
|
"manufacturer": "Proizvođač",
|
||||||
"inclVat": "uključujući {{vat}}% PDV",
|
"inclVat": "uključujući {{vat}}% PDV",
|
||||||
|
"inclVatSimple": "uključujući PDV",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Novo",
|
"new": "Novo",
|
||||||
"weeks": "nedelja",
|
"weeks": "Nedelje",
|
||||||
"arriving": "Dolazak:",
|
"arriving": "Dolazak:",
|
||||||
"inclVatFooter": "uključujući {{vat}}% PDV,*",
|
"inclVatFooter": "uključujući {{vat}}% PDV,*",
|
||||||
"availability": "Dostupnost",
|
"availability": "Dostupnost",
|
||||||
@@ -25,7 +26,7 @@ export default {
|
|||||||
"pickupPrice": "Cena preuzimanja: 19,90 € po reznici.",
|
"pickupPrice": "Cena preuzimanja: 19,90 € po reznici.",
|
||||||
"consistsOf": "Sastoji se od:",
|
"consistsOf": "Sastoji se od:",
|
||||||
"loadingComponentDetails": "{{index}}. Učitavanje detalja komponente...",
|
"loadingComponentDetails": "{{index}}. Učitavanje detalja komponente...",
|
||||||
"loadingProduct": "Proizvod se učitava...",
|
"loadingProduct": "Učitavanje proizvoda...",
|
||||||
"individualPriceTotal": "Ukupna pojedinačna cena:",
|
"individualPriceTotal": "Ukupna pojedinačna cena:",
|
||||||
"setPrice": "Cena kompleta:",
|
"setPrice": "Cena kompleta:",
|
||||||
"yourSavings": "Vaša ušteda:",
|
"yourSavings": "Vaša ušteda:",
|
||||||
@@ -45,6 +46,6 @@ export default {
|
|||||||
"from3Products": "od 3 proizvoda",
|
"from3Products": "od 3 proizvoda",
|
||||||
"from5Products": "od 5 proizvoda",
|
"from5Products": "od 5 proizvoda",
|
||||||
"from7Products": "od 7 proizvoda",
|
"from7Products": "od 7 proizvoda",
|
||||||
"moreProductsMoreSavings": "Što više proizvoda izaberete, više štedite!"
|
"moreProductsMoreSavings": "Što više proizvoda izaberete, to više štedite!"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
61
src/i18n/locales/sr/productDialogs.js
Normal file
61
src/i18n/locales/sr/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Pitanje o proizvodu",
|
||||||
|
"questionSubtitle": "Imate li pitanje u vezi ovog proizvoda? Rado ćemo vam pomoći.",
|
||||||
|
"questionSuccess": "Hvala vam na pitanju! Javićemo vam se što je pre moguće.",
|
||||||
|
"nameLabel": "Ime",
|
||||||
|
"namePlaceholder": "Vaše ime",
|
||||||
|
"emailLabel": "Email",
|
||||||
|
"emailPlaceholder": "vas.email@example.com",
|
||||||
|
"questionLabel": "Vaše pitanje",
|
||||||
|
"questionPlaceholder": "Opišite svoje pitanje u vezi ovog proizvoda...",
|
||||||
|
"photosLabelQuestion": "Priložite fotografije uz pitanje (opciono)",
|
||||||
|
"submitQuestion": "Pošalji pitanje",
|
||||||
|
"sending": "Šalje se...",
|
||||||
|
|
||||||
|
"ratingTitle": "Oceni proizvod",
|
||||||
|
"ratingSubtitle": "Podelite svoje iskustvo sa ovim proizvodom i pomozite drugim kupcima da donesu odluku.",
|
||||||
|
"ratingSuccess": "Hvala vam na oceni! Biće objavljena nakon provere.",
|
||||||
|
"emailHelper": "Vaš email neće biti objavljen",
|
||||||
|
"ratingLabel": "Ocena *",
|
||||||
|
"pleaseRate": "Molimo ocenite",
|
||||||
|
"ratingStars": "{{rating}} od 5 zvezdica",
|
||||||
|
"reviewLabel": "Vaša recenzija (opciono)",
|
||||||
|
"reviewPlaceholder": "Opišite svoja iskustva sa ovim proizvodom...",
|
||||||
|
"photosLabelRating": "Priložite fotografije uz recenziju (opciono)",
|
||||||
|
"submitRating": "Pošalji recenziju",
|
||||||
|
"errorGeneric": "Došlo je do greške",
|
||||||
|
"errorPhotos": "Greška pri obradi fotografija",
|
||||||
|
|
||||||
|
"availabilityTitle": "Zahtevajte dostupnost",
|
||||||
|
"availabilitySubtitle": "Ovaj proizvod trenutno nije dostupan. Rado ćemo vas obavestiti čim ponovo bude na stanju.",
|
||||||
|
"availabilitySuccessEmail": "Hvala vam na zahtevu! Obavestićemo vas putem emaila čim proizvod ponovo bude dostupan.",
|
||||||
|
"availabilitySuccessTelegram": "Hvala vam na zahtevu! Obavestićemo vas putem Telegrama čim proizvod ponovo bude dostupan.",
|
||||||
|
"notificationMethodLabel": "Kako želite da budete obavešteni?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@vašeTelegramIme ili Telegram ID",
|
||||||
|
"telegramHelper": "Unesite svoje Telegram korisničko ime (sa @) ili Telegram ID",
|
||||||
|
"messageLabel": "Poruka (opciono)",
|
||||||
|
"messagePlaceholder": "Dodatne informacije ili pitanja...",
|
||||||
|
"submitAvailability": "Zahtevaj dostupnost",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Izaberite fotografije",
|
||||||
|
"photoUploadErrorMaxFiles": "Dozvoljeno je maksimalno {{max}} fajlova",
|
||||||
|
"photoUploadErrorFileType": "Dozvoljeni su samo slikovni fajlovi (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Fajl je prevelik. Maksimum: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} fajl(ova) izabrano",
|
||||||
|
"photoUploadCompressed": "(kompresovano za upload)",
|
||||||
|
"photoUploadRemove": "Ukloni sliku",
|
||||||
|
"photoUploadLabelDefault": "Priložite fotografije (opciono)",
|
||||||
|
|
||||||
|
"shareTitle": "Podeli",
|
||||||
|
"shareEmbed": "Ugradi",
|
||||||
|
"shareCopyLink": "Kopiraj link",
|
||||||
|
"shareSuccessEmbed": "Kod za ugradnju je kopiran u međuspremnik!",
|
||||||
|
"shareErrorEmbed": "Greška pri kopiranju koda za ugradnju",
|
||||||
|
"shareSuccessLink": "Link je kopiran u međuspremnik!",
|
||||||
|
"shareWhatsAppText": "Pogledaj ovaj proizvod: {{name}}",
|
||||||
|
"shareTelegramText": "Pogledaj ovaj proizvod: {{name}}",
|
||||||
|
"shareEmailSubject": "Preporuka proizvoda",
|
||||||
|
"shareEmailBody": "Zdravo,\n\nŽelim da ti preporučim ovaj proizvod:\n\n{{name}}\n{{url}}\n\nSrdačan pozdrav"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Artikelnummer",
|
"articleNumber": "Artikelnummer",
|
||||||
"manufacturer": "Tillverkare",
|
"manufacturer": "Tillverkare",
|
||||||
"inclVat": "inkl. {{vat}}% moms",
|
"inclVat": "inkl. {{vat}}% moms",
|
||||||
|
"inclVatSimple": "inkl. moms",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Ny",
|
"new": "Ny",
|
||||||
"weeks": "veckor",
|
"weeks": "Veckor",
|
||||||
"arriving": "Ankomst:",
|
"arriving": "Ankomst:",
|
||||||
"inclVatFooter": "inkl. {{vat}}% moms,*",
|
"inclVatFooter": "inkl. {{vat}}% moms,*",
|
||||||
"availability": "Tillgänglighet",
|
"availability": "Tillgänglighet",
|
||||||
@@ -22,13 +23,13 @@ export default {
|
|||||||
"weight": "Vikt: {{weight}} kg",
|
"weight": "Vikt: {{weight}} kg",
|
||||||
"youSave": "Du sparar: {{amount}}",
|
"youSave": "Du sparar: {{amount}}",
|
||||||
"cheaperThanIndividual": "Billigare än att köpa separat",
|
"cheaperThanIndividual": "Billigare än att köpa separat",
|
||||||
"pickupPrice": "Avhämtningspris: 19,90 € per stickling.",
|
"pickupPrice": "Upphämtningspris: 19,90 € per stickling.",
|
||||||
"consistsOf": "Består av:",
|
"consistsOf": "Består av:",
|
||||||
"loadingComponentDetails": "{{index}}. Laddar komponentdetaljer...",
|
"loadingComponentDetails": "{{index}}. Laddar komponentdetaljer...",
|
||||||
"loadingProduct": "Produkten laddas...",
|
"loadingProduct": "Laddar produkt...",
|
||||||
"individualPriceTotal": "Total individuellt pris:",
|
"individualPriceTotal": "Total individuellt pris:",
|
||||||
"setPrice": "Setpris:",
|
"setPrice": "Setpris:",
|
||||||
"yourSavings": "Din besparing:",
|
"yourSavings": "Dina besparingar:",
|
||||||
"similarProducts": "Liknande produkter",
|
"similarProducts": "Liknande produkter",
|
||||||
"countDisplay": {
|
"countDisplay": {
|
||||||
"noProducts": "0 produkter",
|
"noProducts": "0 produkter",
|
||||||
|
|||||||
61
src/i18n/locales/sv/productDialogs.js
Normal file
61
src/i18n/locales/sv/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Fråga om produkten",
|
||||||
|
"questionSubtitle": "Har du en fråga om denna produkt? Vi hjälper dig gärna.",
|
||||||
|
"questionSuccess": "Tack för din fråga! Vi återkommer till dig så snart som möjligt.",
|
||||||
|
"nameLabel": "Namn",
|
||||||
|
"namePlaceholder": "Ditt namn",
|
||||||
|
"emailLabel": "E-post",
|
||||||
|
"emailPlaceholder": "din.epost@example.com",
|
||||||
|
"questionLabel": "Din fråga",
|
||||||
|
"questionPlaceholder": "Beskriv din fråga om denna produkt...",
|
||||||
|
"photosLabelQuestion": "Bifoga bilder till din fråga (valfritt)",
|
||||||
|
"submitQuestion": "Skicka fråga",
|
||||||
|
"sending": "Skickar...",
|
||||||
|
|
||||||
|
"ratingTitle": "Betygsätt produkt",
|
||||||
|
"ratingSubtitle": "Dela din erfarenhet av denna produkt och hjälp andra kunder att fatta beslut.",
|
||||||
|
"ratingSuccess": "Tack för din recension! Den kommer att publiceras efter granskning.",
|
||||||
|
"emailHelper": "Din e-post kommer inte att publiceras",
|
||||||
|
"ratingLabel": "Betyg *",
|
||||||
|
"pleaseRate": "Vänligen betygsätt",
|
||||||
|
"ratingStars": "{{rating}} av 5 stjärnor",
|
||||||
|
"reviewLabel": "Din recension (valfritt)",
|
||||||
|
"reviewPlaceholder": "Beskriv dina erfarenheter av denna produkt...",
|
||||||
|
"photosLabelRating": "Bifoga bilder till din recension (valfritt)",
|
||||||
|
"submitRating": "Skicka recension",
|
||||||
|
"errorGeneric": "Ett fel uppstod",
|
||||||
|
"errorPhotos": "Fel vid bearbetning av bilder",
|
||||||
|
|
||||||
|
"availabilityTitle": "Begär tillgänglighet",
|
||||||
|
"availabilitySubtitle": "Denna produkt är för närvarande inte tillgänglig. Vi meddelar dig gärna så snart den finns i lager igen.",
|
||||||
|
"availabilitySuccessEmail": "Tack för din förfrågan! Vi meddelar dig via e-post så snart produkten finns tillgänglig igen.",
|
||||||
|
"availabilitySuccessTelegram": "Tack för din förfrågan! Vi meddelar dig via Telegram så snart produkten finns tillgänglig igen.",
|
||||||
|
"notificationMethodLabel": "Hur vill du bli meddelad?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@dittTelegramNamn eller Telegram ID",
|
||||||
|
"telegramHelper": "Ange ditt Telegram-användarnamn (med @) eller Telegram ID",
|
||||||
|
"messageLabel": "Meddelande (valfritt)",
|
||||||
|
"messagePlaceholder": "Ytterligare information eller frågor...",
|
||||||
|
"submitAvailability": "Begär tillgänglighet",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Välj bilder",
|
||||||
|
"photoUploadErrorMaxFiles": "Maximalt {{max}} filer tillåtna",
|
||||||
|
"photoUploadErrorFileType": "Endast bildfiler (JPEG, PNG, GIF, WebP) är tillåtna",
|
||||||
|
"photoUploadErrorFileSize": "Filen är för stor. Max: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} fil(er) valda",
|
||||||
|
"photoUploadCompressed": "(komprimerad för uppladdning)",
|
||||||
|
"photoUploadRemove": "Ta bort bild",
|
||||||
|
"photoUploadLabelDefault": "Bifoga bilder (valfritt)",
|
||||||
|
|
||||||
|
"shareTitle": "Dela",
|
||||||
|
"shareEmbed": "Bädda in",
|
||||||
|
"shareCopyLink": "Kopiera länk",
|
||||||
|
"shareSuccessEmbed": "Bäddningskod kopierad till urklipp!",
|
||||||
|
"shareErrorEmbed": "Fel vid kopiering av bäddningskoden",
|
||||||
|
"shareSuccessLink": "Länk kopierad till urklipp!",
|
||||||
|
"shareWhatsAppText": "Kolla in denna produkt: {{name}}",
|
||||||
|
"shareTelegramText": "Kolla in denna produkt: {{name}}",
|
||||||
|
"shareEmailSubject": "Produktrekommendation",
|
||||||
|
"shareEmailBody": "Hej,\n\nJag vill rekommendera denna produkt till dig:\n\n{{name}}\n{{url}}\n\nMed vänliga hälsningar"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ export default {
|
|||||||
"articleNumber": "Makale numarası",
|
"articleNumber": "Makale numarası",
|
||||||
"manufacturer": "Üretici",
|
"manufacturer": "Üretici",
|
||||||
"inclVat": "%{{vat}} KDV dahil",
|
"inclVat": "%{{vat}} KDV dahil",
|
||||||
|
"inclVatSimple": "KDV dahil",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Yeni",
|
"new": "Yeni",
|
||||||
"weeks": "hafta",
|
"weeks": "Hafta",
|
||||||
"arriving": "Geliş:",
|
"arriving": "Geliş:",
|
||||||
"inclVatFooter": "%{{vat}} KDV dahil,*",
|
"inclVatFooter": "%{{vat}} KDV dahil,*",
|
||||||
"availability": "Mevcutluk",
|
"availability": "Mevcutluk",
|
||||||
@@ -22,14 +23,14 @@ export default {
|
|||||||
"weight": "Ağırlık: {{weight}} kg",
|
"weight": "Ağırlık: {{weight}} kg",
|
||||||
"youSave": "Tasarruf edersiniz: {{amount}}",
|
"youSave": "Tasarruf edersiniz: {{amount}}",
|
||||||
"cheaperThanIndividual": "Tek tek almaktan daha ucuz",
|
"cheaperThanIndividual": "Tek tek almaktan daha ucuz",
|
||||||
"pickupPrice": "Teslim alma fiyatı: kesim başına €19,90.",
|
"pickupPrice": "Teslim alma fiyatı: Kesim başına €19,90.",
|
||||||
"consistsOf": "Şunlardan oluşur:",
|
"consistsOf": "Şunlardan oluşur:",
|
||||||
"loadingComponentDetails": "{{index}}. Bileşen detayları yükleniyor...",
|
"loadingComponentDetails": "{{index}}. Bileşen detayları yükleniyor...",
|
||||||
"loadingProduct": "Ürün yükleniyor...",
|
"loadingProduct": "Ürün yükleniyor...",
|
||||||
"individualPriceTotal": "Toplam bireysel fiyat:",
|
"individualPriceTotal": "Toplam bireysel fiyat:",
|
||||||
"setPrice": "Set fiyatı:",
|
"setPrice": "Set fiyatı:",
|
||||||
"yourSavings": "Tasarrufunuz:",
|
"yourSavings": "Tasarrufunuz:",
|
||||||
"similarProducts": "Benzer Ürünler",
|
"similarProducts": "Benzer ürünler",
|
||||||
"countDisplay": {
|
"countDisplay": {
|
||||||
"noProducts": "0 ürün",
|
"noProducts": "0 ürün",
|
||||||
"oneProduct": "1 ürün",
|
"oneProduct": "1 ürün",
|
||||||
|
|||||||
61
src/i18n/locales/tr/productDialogs.js
Normal file
61
src/i18n/locales/tr/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Ürün hakkında soru",
|
||||||
|
"questionSubtitle": "Bu ürünle ilgili bir sorunuz mu var? Size yardımcı olmaktan memnuniyet duyarız.",
|
||||||
|
"questionSuccess": "Sorunuz için teşekkürler! En kısa sürede size geri döneceğiz.",
|
||||||
|
"nameLabel": "İsim",
|
||||||
|
"namePlaceholder": "Adınız",
|
||||||
|
"emailLabel": "E-posta",
|
||||||
|
"emailPlaceholder": "sizin.email@example.com",
|
||||||
|
"questionLabel": "Sorunuz",
|
||||||
|
"questionPlaceholder": "Bu ürünle ilgili sorunuzu açıklayın...",
|
||||||
|
"photosLabelQuestion": "Sorunuza fotoğraf ekleyin (isteğe bağlı)",
|
||||||
|
"submitQuestion": "Soruyu gönder",
|
||||||
|
"sending": "Gönderiliyor...",
|
||||||
|
|
||||||
|
"ratingTitle": "Ürünü değerlendirin",
|
||||||
|
"ratingSubtitle": "Bu ürünle ilgili deneyimlerinizi paylaşın ve diğer müşterilerin karar vermesine yardımcı olun.",
|
||||||
|
"ratingSuccess": "Değerlendirmeniz için teşekkürler! İnceleme sonrası yayınlanacaktır.",
|
||||||
|
"emailHelper": "E-postanız yayınlanmayacaktır",
|
||||||
|
"ratingLabel": "Değerlendirme *",
|
||||||
|
"pleaseRate": "Lütfen değerlendirin",
|
||||||
|
"ratingStars": "{{rating}} üzerinden 5 yıldız",
|
||||||
|
"reviewLabel": "Yorumunuz (isteğe bağlı)",
|
||||||
|
"reviewPlaceholder": "Bu ürünle ilgili deneyimlerinizi açıklayın...",
|
||||||
|
"photosLabelRating": "Yorumunuza fotoğraf ekleyin (isteğe bağlı)",
|
||||||
|
"submitRating": "Yorumu gönder",
|
||||||
|
"errorGeneric": "Bir hata oluştu",
|
||||||
|
"errorPhotos": "Fotoğraflar işlenirken hata oluştu",
|
||||||
|
|
||||||
|
"availabilityTitle": "Stok durumu talep et",
|
||||||
|
"availabilitySubtitle": "Bu ürün şu anda mevcut değil. Stoklara girdiğinde sizi bilgilendirmekten memnuniyet duyarız.",
|
||||||
|
"availabilitySuccessEmail": "Talebiniz için teşekkürler! Ürün tekrar mevcut olduğunda e-posta ile bilgilendirileceksiniz.",
|
||||||
|
"availabilitySuccessTelegram": "Talebiniz için teşekkürler! Ürün tekrar mevcut olduğunda Telegram üzerinden bilgilendirileceksiniz.",
|
||||||
|
"notificationMethodLabel": "Nasıl bilgilendirilmek istersiniz?",
|
||||||
|
"telegramBotLabel": "Telegram Botu",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@TelegramAdınız veya Telegram ID",
|
||||||
|
"telegramHelper": "Telegram kullanıcı adınızı (@ ile) veya Telegram ID'nizi girin",
|
||||||
|
"messageLabel": "Mesaj (isteğe bağlı)",
|
||||||
|
"messagePlaceholder": "Ek bilgiler veya sorular...",
|
||||||
|
"submitAvailability": "Stok durumu talep et",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Fotoğraf seç",
|
||||||
|
"photoUploadErrorMaxFiles": "En fazla {{max}} dosya izin verilir",
|
||||||
|
"photoUploadErrorFileType": "Sadece resim dosyalarına (JPEG, PNG, GIF, WebP) izin verilir",
|
||||||
|
"photoUploadErrorFileSize": "Dosya çok büyük. Maksimum: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "{{count}} dosya seçildi",
|
||||||
|
"photoUploadCompressed": "(yükleme için sıkıştırıldı)",
|
||||||
|
"photoUploadRemove": "Resmi kaldır",
|
||||||
|
"photoUploadLabelDefault": "Fotoğraf ekle (isteğe bağlı)",
|
||||||
|
|
||||||
|
"shareTitle": "Paylaş",
|
||||||
|
"shareEmbed": "Yerleştir",
|
||||||
|
"shareCopyLink": "Bağlantıyı kopyala",
|
||||||
|
"shareSuccessEmbed": "Yerleştirme kodu panoya kopyalandı!",
|
||||||
|
"shareErrorEmbed": "Yerleştirme kodu kopyalanırken hata oluştu",
|
||||||
|
"shareSuccessLink": "Bağlantı panoya kopyalandı!",
|
||||||
|
"shareWhatsAppText": "Bu ürüne göz atın: {{name}}",
|
||||||
|
"shareTelegramText": "Bu ürüne göz atın: {{name}}",
|
||||||
|
"shareEmailSubject": "Ürün tavsiyesi",
|
||||||
|
"shareEmailBody": "Merhaba,\n\nSize bu ürünü tavsiye etmek istiyorum:\n\n{{name}}\n{{url}}\n\nSaygılarımla"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -5,17 +5,18 @@ export default {
|
|||||||
"notFoundDescription": "Продукт, який ви шукаєте, не існує або був видалений.",
|
"notFoundDescription": "Продукт, який ви шукаєте, не існує або був видалений.",
|
||||||
"backToHome": "Повернутися на головну сторінку",
|
"backToHome": "Повернутися на головну сторінку",
|
||||||
"error": "Помилка",
|
"error": "Помилка",
|
||||||
"articleNumber": "Номер артикула",
|
"articleNumber": "Артикул",
|
||||||
"manufacturer": "Виробник",
|
"manufacturer": "Виробник",
|
||||||
"inclVat": "включно з {{vat}}% ПДВ",
|
"inclVat": "включно з {{vat}}% ПДВ",
|
||||||
|
"inclVatSimple": "включно з ПДВ",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "Новий",
|
"new": "Новий",
|
||||||
"weeks": "тижнів",
|
"weeks": "Тижнів",
|
||||||
"arriving": "Прибуття:",
|
"arriving": "Прибуття:",
|
||||||
"inclVatFooter": "включно з {{vat}}% ПДВ,*",
|
"inclVatFooter": "включно з {{vat}}% ПДВ,*",
|
||||||
"availability": "Наявність",
|
"availability": "Наявність",
|
||||||
"inStock": "в наявності",
|
"inStock": "в наявності",
|
||||||
"comingSoon": "Скоро буде",
|
"comingSoon": "Скоро в наявності",
|
||||||
"deliveryTime": "Час доставки",
|
"deliveryTime": "Час доставки",
|
||||||
"inclShort": "вкл.",
|
"inclShort": "вкл.",
|
||||||
"vatShort": "ПДВ",
|
"vatShort": "ПДВ",
|
||||||
@@ -25,7 +26,7 @@ export default {
|
|||||||
"pickupPrice": "Ціна за самовивіз: €19.90 за живець.",
|
"pickupPrice": "Ціна за самовивіз: €19.90 за живець.",
|
||||||
"consistsOf": "Складається з:",
|
"consistsOf": "Складається з:",
|
||||||
"loadingComponentDetails": "{{index}}. Завантаження деталей компонента...",
|
"loadingComponentDetails": "{{index}}. Завантаження деталей компонента...",
|
||||||
"loadingProduct": "Продукт завантажується...",
|
"loadingProduct": "Завантаження продукту...",
|
||||||
"individualPriceTotal": "Загальна ціна окремо:",
|
"individualPriceTotal": "Загальна ціна окремо:",
|
||||||
"setPrice": "Ціна набору:",
|
"setPrice": "Ціна набору:",
|
||||||
"yourSavings": "Ваша економія:",
|
"yourSavings": "Ваша економія:",
|
||||||
@@ -38,7 +39,7 @@ export default {
|
|||||||
"filteredOneProduct": "{{filtered}} з 1 продукту",
|
"filteredOneProduct": "{{filtered}} з 1 продукту",
|
||||||
"xOfYProducts": "{{x}} з {{y}} продуктів"
|
"xOfYProducts": "{{x}} з {{y}} продуктів"
|
||||||
},
|
},
|
||||||
"removeFiltersToSee": "Видаліть фільтри, щоб побачити продукти",
|
"removeFiltersToSee": "Приберіть фільтри, щоб побачити продукти",
|
||||||
"outOfStock": "Немає в наявності",
|
"outOfStock": "Немає в наявності",
|
||||||
"fromXProducts": "від {{count}} продуктів",
|
"fromXProducts": "від {{count}} продуктів",
|
||||||
"discount": {
|
"discount": {
|
||||||
|
|||||||
61
src/i18n/locales/uk/productDialogs.js
Normal file
61
src/i18n/locales/uk/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "Питання про продукт",
|
||||||
|
"questionSubtitle": "У вас є питання щодо цього продукту? Ми раді допомогти вам.",
|
||||||
|
"questionSuccess": "Дякуємо за ваше питання! Ми зв’яжемося з вами якнайшвидше.",
|
||||||
|
"nameLabel": "Ім'я",
|
||||||
|
"namePlaceholder": "Ваше ім'я",
|
||||||
|
"emailLabel": "Електронна пошта",
|
||||||
|
"emailPlaceholder": "your.email@example.com",
|
||||||
|
"questionLabel": "Ваше питання",
|
||||||
|
"questionPlaceholder": "Опишіть ваше питання щодо цього продукту...",
|
||||||
|
"photosLabelQuestion": "Додайте фото до вашого питання (необов’язково)",
|
||||||
|
"submitQuestion": "Надіслати питання",
|
||||||
|
"sending": "Надсилання...",
|
||||||
|
|
||||||
|
"ratingTitle": "Оцінити продукт",
|
||||||
|
"ratingSubtitle": "Поділіться своїм досвідом використання цього продукту та допоможіть іншим клієнтам зробити вибір.",
|
||||||
|
"ratingSuccess": "Дякуємо за ваш відгук! Він буде опублікований після перевірки.",
|
||||||
|
"emailHelper": "Ваша електронна пошта не буде опублікована",
|
||||||
|
"ratingLabel": "Оцінка *",
|
||||||
|
"pleaseRate": "Будь ласка, оцініть",
|
||||||
|
"ratingStars": "{{rating}} з 5 зірок",
|
||||||
|
"reviewLabel": "Ваш відгук (необов’язково)",
|
||||||
|
"reviewPlaceholder": "Опишіть свій досвід з цим продуктом...",
|
||||||
|
"photosLabelRating": "Додайте фото до вашого відгуку (необов’язково)",
|
||||||
|
"submitRating": "Надіслати відгук",
|
||||||
|
"errorGeneric": "Сталася помилка",
|
||||||
|
"errorPhotos": "Помилка обробки фотографій",
|
||||||
|
|
||||||
|
"availabilityTitle": "Запитати наявність",
|
||||||
|
"availabilitySubtitle": "Цей продукт наразі недоступний. Ми з радістю повідомимо вас, як тільки він з’явиться в наявності.",
|
||||||
|
"availabilitySuccessEmail": "Дякуємо за ваш запит! Ми повідомимо вас електронною поштою, як тільки продукт знову буде доступний.",
|
||||||
|
"availabilitySuccessTelegram": "Дякуємо за ваш запит! Ми повідомимо вас через Telegram, як тільки продукт знову буде доступний.",
|
||||||
|
"notificationMethodLabel": "Як ви хочете отримувати сповіщення?",
|
||||||
|
"telegramBotLabel": "Telegram Bot",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@yourTelegramName or Telegram ID",
|
||||||
|
"telegramHelper": "Введіть ваш Telegram-ім'я користувача (з @) або Telegram ID",
|
||||||
|
"messageLabel": "Повідомлення (необов’язково)",
|
||||||
|
"messagePlaceholder": "Додаткова інформація або питання...",
|
||||||
|
"submitAvailability": "Запитати наявність",
|
||||||
|
|
||||||
|
"photoUploadSelect": "Вибрати фото",
|
||||||
|
"photoUploadErrorMaxFiles": "Максимум дозволено {{max}} файлів",
|
||||||
|
"photoUploadErrorFileType": "Дозволені лише зображення (JPEG, PNG, GIF, WebP)",
|
||||||
|
"photoUploadErrorFileSize": "Файл занадто великий. Максимум: {{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "Вибрано {{count}} файл(ів)",
|
||||||
|
"photoUploadCompressed": "(скомпресовано для завантаження)",
|
||||||
|
"photoUploadRemove": "Видалити зображення",
|
||||||
|
"photoUploadLabelDefault": "Додати фото (необов’язково)",
|
||||||
|
|
||||||
|
"shareTitle": "Поділитися",
|
||||||
|
"shareEmbed": "Вбудувати",
|
||||||
|
"shareCopyLink": "Копіювати посилання",
|
||||||
|
"shareSuccessEmbed": "Код для вбудовування скопійовано в буфер обміну!",
|
||||||
|
"shareErrorEmbed": "Помилка копіювання коду для вбудовування",
|
||||||
|
"shareSuccessLink": "Посилання скопійовано в буфер обміну!",
|
||||||
|
"shareWhatsAppText": "Перегляньте цей продукт: {{name}}",
|
||||||
|
"shareTelegramText": "Перегляньте цей продукт: {{name}}",
|
||||||
|
"shareEmailSubject": "Рекомендація продукту",
|
||||||
|
"shareEmailBody": "Привіт,\n\nХочу порекомендувати вам цей продукт:\n\n{{name}}\n{{url}}\n\nЗ найкращими побажаннями"
|
||||||
|
};
|
||||||
@@ -3,6 +3,7 @@ import navigation from './navigation.js';
|
|||||||
import auth from './auth.js';
|
import auth from './auth.js';
|
||||||
import cart from './cart.js';
|
import cart from './cart.js';
|
||||||
import product from './product.js';
|
import product from './product.js';
|
||||||
|
import productDialogs from './productDialogs.js';
|
||||||
import search from './search.js';
|
import search from './search.js';
|
||||||
import sorting from './sorting.js';
|
import sorting from './sorting.js';
|
||||||
import chat from './chat.js';
|
import chat from './chat.js';
|
||||||
@@ -35,6 +36,7 @@ export default {
|
|||||||
"auth": auth,
|
"auth": auth,
|
||||||
"cart": cart,
|
"cart": cart,
|
||||||
"product": product,
|
"product": product,
|
||||||
|
"productDialogs": productDialogs,
|
||||||
"search": search,
|
"search": search,
|
||||||
"sorting": sorting,
|
"sorting": sorting,
|
||||||
"chat": chat,
|
"chat": chat,
|
||||||
|
|||||||
@@ -8,13 +8,14 @@ export default {
|
|||||||
"articleNumber": "商品编号",
|
"articleNumber": "商品编号",
|
||||||
"manufacturer": "制造商",
|
"manufacturer": "制造商",
|
||||||
"inclVat": "含 {{vat}}% 增值税",
|
"inclVat": "含 {{vat}}% 增值税",
|
||||||
|
"inclVatSimple": "含增值税",
|
||||||
"priceUnit": "{{price}}/{{unit}}",
|
"priceUnit": "{{price}}/{{unit}}",
|
||||||
"new": "新品",
|
"new": "新品",
|
||||||
"weeks": "周",
|
"weeks": "周",
|
||||||
"arriving": "到货时间:",
|
"arriving": "到货时间:",
|
||||||
"inclVatFooter": "含 {{vat}}% 增值税,*",
|
"inclVatFooter": "含 {{vat}}% 增值税,*",
|
||||||
"availability": "库存情况",
|
"availability": "库存情况",
|
||||||
"inStock": "有库存",
|
"inStock": "有现货",
|
||||||
"comingSoon": "即将上市",
|
"comingSoon": "即将上市",
|
||||||
"deliveryTime": "交货时间",
|
"deliveryTime": "交货时间",
|
||||||
"inclShort": "含",
|
"inclShort": "含",
|
||||||
@@ -22,11 +23,11 @@ export default {
|
|||||||
"weight": "重量:{{weight}} 公斤",
|
"weight": "重量:{{weight}} 公斤",
|
||||||
"youSave": "您节省了:{{amount}}",
|
"youSave": "您节省了:{{amount}}",
|
||||||
"cheaperThanIndividual": "比单独购买更便宜",
|
"cheaperThanIndividual": "比单独购买更便宜",
|
||||||
"pickupPrice": "自提价:每个插枝19.90欧元。",
|
"pickupPrice": "自取价:每个插枝19.90欧元。",
|
||||||
"consistsOf": "包含:",
|
"consistsOf": "包含:",
|
||||||
"loadingComponentDetails": "{{index}}. 正在加载组件详情...",
|
"loadingComponentDetails": "{{index}}. 正在加载组件详情...",
|
||||||
"loadingProduct": "产品正在加载...",
|
"loadingProduct": "正在加载产品...",
|
||||||
"individualPriceTotal": "单件总价:",
|
"individualPriceTotal": "单独购买总价:",
|
||||||
"setPrice": "套装价格:",
|
"setPrice": "套装价格:",
|
||||||
"yourSavings": "您的节省:",
|
"yourSavings": "您的节省:",
|
||||||
"similarProducts": "类似产品",
|
"similarProducts": "类似产品",
|
||||||
|
|||||||
61
src/i18n/locales/zh/productDialogs.js
Normal file
61
src/i18n/locales/zh/productDialogs.js
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
export default {
|
||||||
|
"questionTitle": "关于产品的问题",
|
||||||
|
"questionSubtitle": "您对该产品有疑问吗?我们很乐意为您提供帮助。",
|
||||||
|
"questionSuccess": "感谢您的提问!我们会尽快与您联系。",
|
||||||
|
"nameLabel": "姓名",
|
||||||
|
"namePlaceholder": "您的姓名",
|
||||||
|
"emailLabel": "电子邮件",
|
||||||
|
"emailPlaceholder": "your.email@example.com",
|
||||||
|
"questionLabel": "您的问题",
|
||||||
|
"questionPlaceholder": "描述您关于该产品的问题...",
|
||||||
|
"photosLabelQuestion": "附加照片(可选)",
|
||||||
|
"submitQuestion": "发送问题",
|
||||||
|
"sending": "发送中...",
|
||||||
|
|
||||||
|
"ratingTitle": "评价产品",
|
||||||
|
"ratingSubtitle": "分享您对该产品的体验,帮助其他客户做出决定。",
|
||||||
|
"ratingSuccess": "感谢您的评价!审核通过后将予以发布。",
|
||||||
|
"emailHelper": "您的电子邮件不会被公开",
|
||||||
|
"ratingLabel": "评分 *",
|
||||||
|
"pleaseRate": "请评分",
|
||||||
|
"ratingStars": "{{rating}} 星,满分 5 星",
|
||||||
|
"reviewLabel": "您的评价(可选)",
|
||||||
|
"reviewPlaceholder": "描述您对该产品的体验...",
|
||||||
|
"photosLabelRating": "附加照片(可选)",
|
||||||
|
"submitRating": "提交评价",
|
||||||
|
"errorGeneric": "发生错误",
|
||||||
|
"errorPhotos": "处理照片时出错",
|
||||||
|
|
||||||
|
"availabilityTitle": "请求库存信息",
|
||||||
|
"availabilitySubtitle": "该产品当前无货。我们会在恢复库存时通知您。",
|
||||||
|
"availabilitySuccessEmail": "感谢您的请求!产品恢复供应时,我们会通过电子邮件通知您。",
|
||||||
|
"availabilitySuccessTelegram": "感谢您的请求!产品恢复供应时,我们会通过 Telegram 通知您。",
|
||||||
|
"notificationMethodLabel": "您希望如何接收通知?",
|
||||||
|
"telegramBotLabel": "Telegram 机器人",
|
||||||
|
"telegramIdLabel": "Telegram ID",
|
||||||
|
"telegramPlaceholder": "@yourTelegramName 或 Telegram ID",
|
||||||
|
"telegramHelper": "请输入您的 Telegram 用户名(带 @)或 Telegram ID",
|
||||||
|
"messageLabel": "留言(可选)",
|
||||||
|
"messagePlaceholder": "附加信息或问题...",
|
||||||
|
"submitAvailability": "请求库存信息",
|
||||||
|
|
||||||
|
"photoUploadSelect": "选择照片",
|
||||||
|
"photoUploadErrorMaxFiles": "最多允许 {{max}} 个文件",
|
||||||
|
"photoUploadErrorFileType": "仅允许图片文件(JPEG、PNG、GIF、WebP)",
|
||||||
|
"photoUploadErrorFileSize": "文件过大。最大:{{maxSize}}MB",
|
||||||
|
"photoUploadSelectedFiles": "已选择 {{count}} 个文件",
|
||||||
|
"photoUploadCompressed": "(上传时已压缩)",
|
||||||
|
"photoUploadRemove": "移除图片",
|
||||||
|
"photoUploadLabelDefault": "附加照片(可选)",
|
||||||
|
|
||||||
|
"shareTitle": "分享",
|
||||||
|
"shareEmbed": "嵌入",
|
||||||
|
"shareCopyLink": "复制链接",
|
||||||
|
"shareSuccessEmbed": "嵌入代码已复制到剪贴板!",
|
||||||
|
"shareErrorEmbed": "复制嵌入代码时出错",
|
||||||
|
"shareSuccessLink": "链接已复制到剪贴板!",
|
||||||
|
"shareWhatsAppText": "看看这个产品:{{name}}",
|
||||||
|
"shareTelegramText": "看看这个产品:{{name}}",
|
||||||
|
"shareEmailSubject": "产品推荐",
|
||||||
|
"shareEmailBody": "您好,\n\n我想向您推荐这款产品:\n\n{{name}}\n{{url}}\n\n此致敬礼"
|
||||||
|
};
|
||||||
@@ -17,6 +17,7 @@ const TRANSLATION_FILES = [
|
|||||||
'auth.js',
|
'auth.js',
|
||||||
'cart.js',
|
'cart.js',
|
||||||
'product.js',
|
'product.js',
|
||||||
|
'productDialogs.js',
|
||||||
'search.js',
|
'search.js',
|
||||||
'sorting.js',
|
'sorting.js',
|
||||||
'chat.js',
|
'chat.js',
|
||||||
@@ -52,7 +53,7 @@ const LEGAL_FILES = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
// Model configuration
|
// Model configuration
|
||||||
const GERMAN_TO_ENGLISH_MODEL = 'gpt-4.1'; // High-quality model for German -> English (critical step)
|
const GERMAN_TO_ENGLISH_MODEL = 'gpt-5.1'; // High-quality model for German -> English (critical step)
|
||||||
const ENGLISH_TO_OTHER_MODEL = 'gpt-4.1-mini'; // Faster/cheaper model for English -> Other languages
|
const ENGLISH_TO_OTHER_MODEL = 'gpt-4.1-mini'; // Faster/cheaper model for English -> Other languages
|
||||||
|
|
||||||
// Supported languages for translation
|
// Supported languages for translation
|
||||||
@@ -354,7 +355,7 @@ function writeTranslationFile(filePath, translationString) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Function to translate content using OpenAI (for German to English)
|
// Function to translate content using OpenAI (for German to English)
|
||||||
async function translateContent(content, systemPrompt, targetLanguage = null, model = 'gpt-4') {
|
async function translateContent(content, systemPrompt, targetLanguage = null, model = 'gpt-5.1') {
|
||||||
try {
|
try {
|
||||||
const prompt = targetLanguage
|
const prompt = targetLanguage
|
||||||
? systemPrompt.replace(/{{targetLanguage}}/g, targetLanguage)
|
? systemPrompt.replace(/{{targetLanguage}}/g, targetLanguage)
|
||||||
@@ -366,8 +367,7 @@ async function translateContent(content, systemPrompt, targetLanguage = null, mo
|
|||||||
{ role: 'system', content: prompt },
|
{ role: 'system', content: prompt },
|
||||||
{ role: 'user', content: `Please translate this translation file content:\n\n${content}` }
|
{ role: 'user', content: `Please translate this translation file content:\n\n${content}` }
|
||||||
],
|
],
|
||||||
temperature: 0.1,
|
reasoning_effort: "none",
|
||||||
max_tokens: 4000
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return response.choices[0].message.content;
|
return response.choices[0].message.content;
|
||||||
@@ -649,7 +649,7 @@ async function main() {
|
|||||||
// Check if OpenAI API key is set (only if we're doing actual translation)
|
// Check if OpenAI API key is set (only if we're doing actual translation)
|
||||||
if (!skipEnglish && !OPENAI_API_KEY) {
|
if (!skipEnglish && !OPENAI_API_KEY) {
|
||||||
console.error('❌ OPENAI_API_KEY environment variable is not set');
|
console.error('❌ OPENAI_API_KEY environment variable is not set');
|
||||||
console.log('Please set your OpenAI API key: export OPENAI_API_KEY="your-api-key-here"');
|
console.log('Hint: export `cat ../shopApi/.env |grep OPENAI` ; node translate-i18n.js');
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user