newlangpbl
Version:
Traductor de idioma platzoom
37 lines • 1.47 kB
JavaScript
export default function newlangpbl(str) {
let translation = str
// si la palabra termina en "ar", se le quitan esos dos caracteres
if (str.toLowerCase().endsWith('ar')) {
translation = str.slice(0, -2)
}
// si la palabra inicia con Z, se le añade "pe" al final
if (str.toLowerCase().startsWith('z')) {
translation = translation + 'pe'
}
// si la palabra traducida tiene 10 o mas letras
// se debe partir a la mitad y unir con un guion del mismo
if (translation.length >= 10) {
const firstHalf = translation.slice(0, Math.round(translation.length / 2))
const secondHalf = translation.slice(Math.round(translation.length / 2))
translation = `${firstHalf}-${secondHalf}`
}
// si la palabra original es un palíndromo
// ninguna regla anterior cuenta y se devuelve
// la misma palabra intercalando mayusculas y minusculas
function minMay(str) {
const length = str.length
let translation = ''
let capitalize = true
for (let i = 0; i < length; i++) {
const char = str.charAt(i);
translation += capitalize ? char.toUpperCase() : char.toLowerCase()
capitalize = !capitalize
}
return translation
}
const reverse = (str) => str.split('').reverse().join('')
if (str == reverse(str)) {
return minMay(str)
}
return translation
}