export default {
name: 'RenderingCanvasViewDropdown',
template: `
`,
props: {
renderingCanvas: {
type: Object,
default: null
},
useBootstrap: {
type: Boolean,
default: false
},
locale: {
type: String,
default: 'zh-TW'
}
},
computed: {
canvasReady() {
return this.renderingCanvas && this.renderingCanvas.isInitialized && this.renderingCanvas.isConnected;
},
// Localization
viewLabel() {
return this.getLocalizedText('view', 'θ¦ε');
},
frontLabel() {
return this.getLocalizedText('front', 'εθ¦ε');
},
backLabel() {
return this.getLocalizedText('back', 'εΎθ¦ε');
},
leftLabel() {
return this.getLocalizedText('left', 'ε·¦θ¦ε');
},
rightLabel() {
return this.getLocalizedText('right', 'ε³θ¦ε');
},
topLabel() {
return this.getLocalizedText('top', 'ι θ¦ε');
},
bottomLabel() {
return this.getLocalizedText('bottom', 'εΊθ¦ε');
},
isometricLabel() {
return this.getLocalizedText('isometric', 'ηθ§θ¦ε');
},
homeLabel() {
return this.getLocalizedText('home', 'δΈ»θ¦ε');
}
},
methods: {
async setView(viewType) {
if (this.renderingCanvas && this.renderingCanvas.setView) {
try {
await this.renderingCanvas.setView(viewType);
} catch (err) {
console.error(`Failed to set view: ${err}`);
}
} else {
console.warn('No rendering canvas component provided or setView method not available');
}
},
getLocalizedText(key, defaultText) {
// Simple localization - can be extended with actual i18n library
const translations = {
'en-US': {
view: 'View',
front: 'Front',
back: 'Back',
left: 'Left',
right: 'Right',
top: 'Top',
bottom: 'Bottom',
isometric: 'Isometric',
home: 'Home'
},
'zh-TW': {
view: 'θ¦ε',
front: 'εθ¦ε',
back: 'εΎθ¦ε',
left: 'ε·¦θ¦ε',
right: 'ε³θ¦ε',
top: 'ι θ¦ε',
bottom: 'εΊθ¦ε',
isometric: 'ηθ§θ¦ε',
home: 'δΈ»θ¦ε'
}
};
const localeTranslations = translations[this.locale] || translations['zh-TW'];
return localeTranslations[key] || defaultText;
}
}
}