@aleja-0515/platzom
Version:
Traductor de idioma Platzom
50 lines (45 loc) • 1.94 kB
JavaScript
export default function platzom(str) {
let traslation = str
//Si la palabra termina en "ar", se le quitan esos dos caracteres
//endsWith sirve para leer los ultimos caracteres de una palabra
//toLowerCase sirve para convertir la minuscula a mayuscula
//toUpperCase sirve para convertir la mayuscula a minuscula
if(str.toLowerCase().endsWith('ar')){
//slice permite quitar caracteres de un string, en este caso empieza en 0 y quita los ultimos dos 'ar'
traslation = str.slice(0, -2)
}
//Si la palabra inicia con Z, se le pone "pe" al final
if(str.toLowerCase().startsWith('z')){
traslation += "pe"
}
//Si la plabra traducida tiene 10 o mas letras,
//se debe partir a la mitad y unir con un guion.
const length = traslation.length
if(length >= 10){ //length es la longitud de la palabra
const firstHalf = traslation.slice(0, Math.round(length/2))
const secondHalf = traslation.slice(Math.round(length/2))
traslation = `${firstHalf}-${secondHalf}`
}
//Si la palabra original es un palindromo
//ninguna regla anterior cuenta y se devuelve
//la misma palabra intercalando mayusculas y minusculas
//split divide un palabra en caracteres ej: "ale".split('')
//reverse invierte los caracteres divididos
//join junta los caracteres invertidos y los vuelve una palabra
const reverse = (str) => str.split('').reverse().join('')
function minMay(str) {
const length = str.length //longitud de la palabra
let translation = ''
let capitalize = true //Si es true se vuelve mayuscula sino minuscula
for (let i =0; i < length; i++){//recorre la longitud de la palabra
const char = str.charAt(i)
translation += capitalize ? char.toUpperCase() : char.toLowerCase()
capitalize =! capitalize
}
return translation
}
if(str == reverse(str)){
return minMay(str)
}
return traslation
}