Merge branch 'main' of https://gitea.carpa.com/LGCC/cdrdpyj
This commit is contained in:
commit
50ba35aba9
|
|
@ -29,4 +29,3 @@ prisma/dev.db
|
|||
# opencode - agentes y scripts locales (no subir a producción)
|
||||
opencode/
|
||||
.opencode/
|
||||
.env
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>TinaCMS</title>
|
||||
</head>
|
||||
|
||||
<!-- if development -->
|
||||
<script type="module">
|
||||
import RefreshRuntime from 'http://localhost:4001/@react-refresh'
|
||||
RefreshRuntime.injectIntoGlobalHook(window)
|
||||
window.$RefreshReg$ = () => {}
|
||||
window.$RefreshSig$ = () => (type) => type
|
||||
window.__vite_plugin_react_preamble_installed__ = true
|
||||
</script>
|
||||
<script type="module" src="http://localhost:4001/@vite/client"></script>
|
||||
<script>
|
||||
function handleLoadError() {
|
||||
// Assets have failed to load
|
||||
document.getElementById('root').innerHTML = '<style type="text/css"> #no-assets-placeholder body { font-family: sans-serif; font-size: 16px; line-height: 1.4; color: #333; background-color: #f5f5f5; } #no-assets-placeholder { max-width: 600px; margin: 0 auto; padding: 40px; text-align: center; background-color: #fff; box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.1); } #no-assets-placeholder h1 { font-size: 24px; margin-bottom: 20px; } #no-assets-placeholder p { margin-bottom: 10px; } #no-assets-placeholder a { color: #0077cc; text-decoration: none; } #no-assets-placeholder a:hover { text-decoration: underline; } </style> <div id="no-assets-placeholder"> <h1>Failed loading TinaCMS assets</h1> <p> Your TinaCMS configuration may be misconfigured, and we could not load the assets for this page. </p> <p> Please visit <a href="https://tina.io/docs/r/FAQ/#13-how-do-i-resolve-failed-loading-tinacms-assets-error">this doc</a> for help. </p> </div> </div>';
|
||||
}
|
||||
</script>
|
||||
<script
|
||||
type="module"
|
||||
src="http://localhost:4001/src/main.tsx"
|
||||
onerror="handleLoadError()"
|
||||
></script>
|
||||
<body class="tina-tailwind">
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
<h1>General Volunteer Program Regulations</h1>
|
||||
<p>Volunteer Terms, Conditions, and Code of Conduct</p>
|
||||
|
||||
<section id="introduccion">
|
||||
<h2>Introduction</h2>
|
||||
<p>The Kingdom of Peace and Justice Center’s mission is to promote peace, justice, leadership, education, humanitarian aid, social responsibility, and cooperation among communities and nations.</p>
|
||||
<p>The following Regulations establish the legal, ethical, and institutional framework that governs the participation of volunteers, defining their rights, obligations, and principles of conduct, in order to ensure that all volunteer activities are carried out in accordance with the values of the Center and applicable law.</p>
|
||||
</section>
|
||||
|
||||
<section id="objeto-voluntariado">
|
||||
<h2>1. Purpose of the Volunteering</h2>
|
||||
<p>The volunteer participates freely and voluntarily in the events of the Center for the purpose of contributing to the fulfillment of its institutional mission in the areas of education, community development, humanitarian assistance, leadership, public diplomacy, promotion of peace and justice, and service to society.</p>
|
||||
<p>All activities shall be carried out with a spirit of service, responsibility, integrity, respect, cooperation, and commitment to the common good.</p>
|
||||
</section>
|
||||
|
||||
<section id="naturaleza-voluntariado">
|
||||
<h2>2. Nature of Volunteering</h2>
|
||||
<p>The volunteer’s participation is exclusively voluntary in nature and does not constitute, under any circumstances, an employment, contractual, corporate, representative, agency, or subordinate relationship with the Center.</p>
|
||||
<p>Participation in the events does not generate any right to salary, employment benefits, social security, compensation, or any other economic remuneration, except with the express written authorization of the Center regarding reimbursement of expenses.</p>
|
||||
</section>
|
||||
|
||||
<section id="requisitos-voluntario">
|
||||
<h2>3. Requirements to Become a Volunteer</h2>
|
||||
<p>The volunteer declares that:</p>
|
||||
<ul>
|
||||
<li>The information provided is truthful, complete, and up to date.</li>
|
||||
<li>They are physically and mentally fit to participate in the activities.</li>
|
||||
<li>There is no legal incapacity or restriction to their participation.</li>
|
||||
<li>They will comply with the policies, regulations, and procedures established by the Center.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="seguro">
|
||||
<h2>4. Insurance Coverage</h2>
|
||||
<p>Unless expressly communicated in writing by the Center, each volunteer shall be responsible for having the medical, accident, and other insurance coverage they deem necessary for their participation.</p>
|
||||
<p>The purchase of any insurance by the Center does not replace the personal responsibility of the volunteer.</p>
|
||||
</section>
|
||||
|
||||
<section id="responsabilidad-medica">
|
||||
<h2>5. Medical Liability</h2>
|
||||
<p>The volunteer states that their state of health allows them to participate in the events and agrees to promptly report any medical condition that may affect their safety or that of third parties.</p>
|
||||
</section>
|
||||
|
||||
<section id="cumplimiento-normas">
|
||||
<h2>6. Compliance with Rules</h2>
|
||||
<p>The volunteer agrees to comply with the instructions given by Center representatives, respect safety rules, and to always act with responsibility, professionalism, and respect toward all persons.</p>
|
||||
</section>
|
||||
|
||||
<section id="confidencialidad">
|
||||
<h2>7. Confidentiality</h2>
|
||||
<p>All information to which the volunteer has access during their participation shall be considered confidential.</p>
|
||||
<p>The volunteer agrees not to disclose institutional, financial, strategic, personal, or any other reserved information, even after their collaboration with the Center has ended.</p>
|
||||
</section>
|
||||
|
||||
<section id="proteccion-datos">
|
||||
<h2>8. Protection of Personal Data</h2>
|
||||
<p>The volunteer authorizes the Center to collect, store, and process their personal data exclusively for purposes related to:</p>
|
||||
<ul>
|
||||
<li>the administration of the volunteer program;</li>
|
||||
<li>institutional communication;</li>
|
||||
<li>the organization of events;</li>
|
||||
<li>compliance with legal obligations;</li>
|
||||
<li>the safety of participants.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="uso-imagen">
|
||||
<h2>9. Image Use</h2>
|
||||
<p>The volunteer authorizes the Center to use photographs, audio recordings, videos, and images obtained during the events for institutional, educational, informational, promotional, and fundraising purposes, unless they expressly state otherwise in writing.</p>
|
||||
</section>
|
||||
|
||||
<section id="propiedad-intelectual">
|
||||
<h2>10. Intellectual Property</h2>
|
||||
<p>Any document, photograph, video, audiovisual material, presentation, publication, content, or work developed by the volunteer within the institutional events will be the exclusive property of the Center, unless otherwise agreed in writing.</p>
|
||||
</section>
|
||||
|
||||
<section id="uso-bienes">
|
||||
<h2>11. Property Use and Care</h2>
|
||||
<p>The volunteer will use the Center’s property, equipment, and materials responsibly, agreeing to maintain them in good condition and return them when required or at the end of their participation.</p>
|
||||
</section>
|
||||
|
||||
<section id="terminacion-voluntariado">
|
||||
<h2>12. Termination of Volunteer Participation</h2>
|
||||
<p>The Center may suspend or terminate the participation of any volunteer when there is noncompliance with these Regulations, conduct that is incompatible with institutional values, risks to the organization, or any other justified reason.</p>
|
||||
<p>The volunteer may withdraw freely by providing reasonable advance notice.</p>
|
||||
</section>
|
||||
|
||||
<section id="limitacion-responsabilidad">
|
||||
<h2>13. Limitation of Liability</h2>
|
||||
<p>The volunteer acknowledges that they participate freely in the Center’s activities and accept the normal risks inherent to them.</p>
|
||||
<p>To the extent permitted by applicable law, the Center, its directors, employees, representatives, collaborators, and other volunteers will not be liable for damages arising from the volunteer’s participation, except in cases of willful misconduct or gross negligence.</p>
|
||||
</section>
|
||||
|
||||
<section id="declaracion-riesgos">
|
||||
<h2>14. Assumption of Risk Statement</h2>
|
||||
<p>The volunteer declares that they are aware that certain events may involve risks arising from travel, community work, humanitarian assistance, public events, institutional visits, or other events of the program.</p>
|
||||
<p>The volunteer accepts participation under their own responsibility and voluntarily assumes such risks, except when there is willful misconduct or gross negligence attributable to the Center.</p>
|
||||
</section>
|
||||
|
||||
<section id="conducta-institucional">
|
||||
<h2>15. Institutional Conduct</h2>
|
||||
<p>The volunteer agrees to maintain conduct consistent with the principles and values of the Center.</p>
|
||||
<p>The following are prohibited:</p>
|
||||
<ul>
|
||||
<li>committing acts of physical or verbal violence;</li>
|
||||
<li>discriminating against or harassing any person;</li>
|
||||
<li>consuming illegal drugs or appearing under the influence;</li>
|
||||
<li>carrying weapons without legal and express authorization;</li>
|
||||
<li>requesting donations or administering financial resources on behalf of the Center without written authorization;</li>
|
||||
<li>using the name of the Center for personal, political, or commercial purposes.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="proteccion-menores">
|
||||
<h2>16. Safeguarding Minors and Vulnerable Individuals</h2>
|
||||
<p>When events involve minors or individuals in situations of vulnerability, the volunteer shall strictly comply with the protection protocols established by the Center and applicable law.</p>
|
||||
</section>
|
||||
|
||||
<section id="conflicto-intereses">
|
||||
<h2>17. Conflict of Interest</h2>
|
||||
<p>The volunteer shall report any personal, professional, economic, or family situation that could create a conflict of interest with the activities of the Center.</p>
|
||||
</section>
|
||||
|
||||
<section id="cumplimiento-normativo">
|
||||
<h2>18. Regulatory Compliance</h2>
|
||||
<p>The volunteer agrees to comply with all applicable legislation related to human rights, protection of personal data, anti-corruption, prevention of money laundering, equality, nondiscrimination, and all other applicable rules.</p>
|
||||
</section>
|
||||
|
||||
<section id="uso-imagen-institucional">
|
||||
<h2>19. Use of the Institutional Name and Image</h2>
|
||||
<p>The Center’s name, logo, trademarks, corporate image, and other distinctive signs may only be used with prior written authorization.</p>
|
||||
</section>
|
||||
|
||||
<section id="redes-sociales">
|
||||
<h2>20. Social Media and Communications</h2>
|
||||
<p>The volunteer may not issue public statements, interviews, communications, or publications on behalf of the Center without prior authorization.</p>
|
||||
<p>They also agree to use social media responsibly, avoiding publications that may affect the institutional image.</p>
|
||||
</section>
|
||||
|
||||
<section id="donaciones">
|
||||
<h2>21. Donations</h2>
|
||||
<p>The status of volunteer does not grant any right over the goods, resources, projects, or donations administered by the Center.</p>
|
||||
<p>Any fundraising campaign must have prior written authorization.</p>
|
||||
</section>
|
||||
|
||||
<section id="fuerza-mayor">
|
||||
<h2>22. Force Majeure</h2>
|
||||
<p>The Center may suspend, modify, or cancel any event due to force majeure, security reasons, armed conflicts, health emergencies, natural disasters, or any other circumstance beyond its control, without this generating any liability.</p>
|
||||
</section>
|
||||
|
||||
<section id="legislacion-jurisdiccion">
|
||||
<h2>23. Applicable Law and Jurisdiction</h2>
|
||||
<p>These Regulations shall be governed by the laws in force in the country where the volunteer events are carried out.</p>
|
||||
<p>Any dispute shall be submitted to the jurisdiction of the competent courts of that country.</p>
|
||||
</section>
|
||||
|
||||
<section id="codigo-etica">
|
||||
<h2>Volunteer Code of Conduct</h2>
|
||||
<p>Every volunteer commits to:</p>
|
||||
<ul>
|
||||
<li>Act with honesty, integrity, and transparency.</li>
|
||||
<li>Respect the dignity and rights of all people.</li>
|
||||
<li>Promote a culture of peace, justice, and solidarity.</li>
|
||||
<li>Maintain absolute confidentiality.</li>
|
||||
<li>Avoid conflicts of interest.</li>
|
||||
<li>Represent the Center with respect and professionalism.</li>
|
||||
<li>Comply with applicable law and institutional policies.</li>
|
||||
<li>Protect the reputation and values of the Center.</li>
|
||||
<li>Always act with a spirit of service.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="politica-privacidad">
|
||||
<h2>Data Protection and Privacy Policy</h2>
|
||||
<p>The Center recognizes the importance of protecting the privacy of its volunteers and agrees to process all personal information in accordance with applicable law.</p>
|
||||
<p>Personal data shall be used exclusively for:</p>
|
||||
<ul>
|
||||
<li>Administration of the volunteer program.</li>
|
||||
<li>Organization of activities and events.</li>
|
||||
<li>Institutional communication.</li>
|
||||
<li>Compliance with legal obligations.</li>
|
||||
<li>Protection and safety of participants.</li>
|
||||
<li>Preparation of statistics and institutional reports.</li>
|
||||
</ul>
|
||||
<p>The Center shall adopt reasonable technical, administrative, and organizational measures to protect personal information against loss, unauthorized access, alteration, disclosure, or improper use.</p>
|
||||
<p>Volunteers may exercise the rights granted to them by applicable law regarding access, rectification, updating, or deletion of their personal data.</p>
|
||||
</section>
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
<h1>Regulamento Geral do Programa de Voluntariado</h1>
|
||||
<p>Termos, Condições e Código de Ética para Voluntários</p>
|
||||
|
||||
<section id="introduccion">
|
||||
<h2>Introdução</h2>
|
||||
<p>O Centro do Reino de Paz e Justiça tem como missão promover a paz, a justiça, a liderança, a educação, a ajuda humanitária, a responsabilidade social e a cooperação entre comunidades e nações.</p>
|
||||
<p>O presente Regulamento estabelece o marco jurídico, ético e institucional que disciplina a participação dos voluntários, definindo seus direitos, deveres e princípios de atuação, com o objetivo de assegurar que todas as atividades de voluntariado sejam desenvolvidas em conformidade com os valores do Centro e com a legislação aplicável.</p>
|
||||
</section>
|
||||
|
||||
<section id="objeto-voluntariado">
|
||||
<h2>1. Objeto do Voluntariado</h2>
|
||||
<p>O voluntário participa de forma livre e voluntária das atividades do Centro com o propósito de contribuir para o cumprimento de sua missão institucional nas áreas de educação, desenvolvimento comunitário, assistência humanitária, liderança, diplomacia pública, promoção da paz, da justiça e serviço à sociedade.</p>
|
||||
<p>Todas as atividades deverão ser desenvolvidas com espírito de serviço, responsabilidade, integridade, respeito, cooperação e compromisso com o bem comum.</p>
|
||||
</section>
|
||||
|
||||
<section id="naturaleza-voluntariado">
|
||||
<h2>2. Natureza do Voluntariado</h2>
|
||||
<p>A participação do voluntário possui caráter exclusivamente voluntário e não constitui, em hipótese alguma, vínculo empregatício, contratual, societário, de representação, de mandato ou de subordinação com o Centro.</p>
|
||||
<p>A participação nas atividades não gera direito a salário, benefícios trabalhistas, previdência social, indenizações nem qualquer outra forma de remuneração, salvo mediante autorização expressa e por escrito do Centro para reembolso de despesas.</p>
|
||||
</section>
|
||||
|
||||
<section id="requisitos-voluntario">
|
||||
<h2>3. Requisitos para ser Voluntário</h2>
|
||||
<p>O voluntário declara que:</p>
|
||||
<ul>
|
||||
<li>As informações fornecidas são verdadeiras, completas e atualizadas.</li>
|
||||
<li>Encontra-se física e mentalmente apto para participar das atividades.</li>
|
||||
<li>Não possui qualquer impedimento legal para sua participação.</li>
|
||||
<li>Cumprirá as políticas, os regulamentos e os procedimentos estabelecidos pelo Centro.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="seguro">
|
||||
<h2>4. Seguro</h2>
|
||||
<p>Salvo comunicação expressa e por escrito do Centro, cada voluntário será responsável por possuir cobertura médica, seguro contra acidentes e quaisquer outros seguros que considere necessários para sua participação.</p>
|
||||
<p>A contratação de qualquer seguro pelo Centro não substitui a responsabilidade pessoal do voluntário.</p>
|
||||
</section>
|
||||
|
||||
<section id="responsabilidad-medica">
|
||||
<h2>5. Responsabilidade Médica</h2>
|
||||
<p>O voluntário declara que seu estado de saúde lhe permite participar das atividades e compromete-se a informar prontamente qualquer condição médica que possa afetar sua segurança ou a de terceiros.</p>
|
||||
</section>
|
||||
|
||||
<section id="cumplimiento-normas">
|
||||
<h2>6. Cumprimento das Normas</h2>
|
||||
<p>O voluntário compromete-se a cumprir as instruções dos responsáveis pelo Centro, respeitar as normas de segurança e atuar sempre com responsabilidade, profissionalismo e respeito para com todas as pessoas.</p>
|
||||
</section>
|
||||
|
||||
<section id="confidencialidad">
|
||||
<h2>7. Confidencialidade</h2>
|
||||
<p>Todas as informações às quais o voluntário tiver acesso durante sua participação serão consideradas confidenciais.</p>
|
||||
<p>O voluntário compromete-se a não divulgar informações institucionais, financeiras, estratégicas, pessoais ou quaisquer outras informações confidenciais, mesmo após o término de sua colaboração com o Centro.</p>
|
||||
</section>
|
||||
|
||||
<section id="proteccion-datos">
|
||||
<h2>8. Proteção de Dados Pessoais</h2>
|
||||
<p>O voluntário autoriza o Centro a coletar, armazenar e tratar seus dados pessoais exclusivamente para as seguintes finalidades:</p>
|
||||
<ul>
|
||||
<li>administração do Programa de Voluntariado;</li>
|
||||
<li>comunicação institucional;</li>
|
||||
<li>organização de atividades;</li>
|
||||
<li>cumprimento de obrigações legais;</li>
|
||||
<li>segurança dos participantes.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="uso-imagen">
|
||||
<h2>9. Uso de Imagem</h2>
|
||||
<p>O voluntário autoriza o Centro a utilizar fotografias, gravações de áudio, vídeos e imagens obtidos durante as atividades para fins institucionais, educacionais, informativos, promocionais e de captação de recursos, salvo manifestação expressa e por escrito em sentido contrário.</p>
|
||||
</section>
|
||||
|
||||
<section id="propiedad-intelectual">
|
||||
<h2>10. Propriedade Intelectual</h2>
|
||||
<p>Todo documento, fotografia, vídeo, material audiovisual, apresentação, publicação, conteúdo ou trabalho desenvolvido pelo voluntário no âmbito das atividades institucionais será de propriedade exclusiva do Centro, salvo acordo em contrário formalizado por escrito.</p>
|
||||
</section>
|
||||
|
||||
<section id="uso-bienes">
|
||||
<h2>11. Uso e Conservação dos Bens</h2>
|
||||
<p>O voluntário deverá utilizar os bens, equipamentos e materiais do Centro de forma responsável, comprometendo-se a conservá-los e devolvê-los sempre que solicitado ou ao término de sua participação.</p>
|
||||
</section>
|
||||
|
||||
<section id="terminacion-voluntariado">
|
||||
<h2>12. Encerramento do Voluntariado</h2>
|
||||
<p>O Centro poderá suspender ou encerrar a participação de qualquer voluntário em caso de descumprimento do presente Regulamento, conduta incompatível com os valores institucionais, riscos para a organização ou qualquer outra causa devidamente justificada.</p>
|
||||
<p>O voluntário poderá desligar-se do Programa a qualquer momento, mediante comunicação com antecedência razoável.</p>
|
||||
</section>
|
||||
|
||||
<section id="limitacion-responsabilidad">
|
||||
<h2>13. Limitação de Responsabilidade</h2>
|
||||
<p>O voluntário reconhece que participa das atividades do Centro de forma livre e voluntária e aceita os riscos normais inerentes a elas.</p>
|
||||
<p>Na medida permitida pela legislação aplicável, o Centro, seus dirigentes, empregados, representantes, colaboradores e demais voluntários não serão responsáveis por danos decorrentes da participação do voluntário, salvo nos casos de dolo ou culpa grave.</p>
|
||||
</section>
|
||||
|
||||
<section id="declaracion-riesgos">
|
||||
<h2>14. Declaração de Assunção de Riscos</h2>
|
||||
<p>O voluntário declara estar ciente de que determinadas atividades podem envolver riscos decorrentes de deslocamentos, trabalho comunitário, assistência humanitária, eventos públicos, visitas institucionais ou outras atividades próprias do Programa.</p>
|
||||
<p>O voluntário aceita participar sob sua própria responsabilidade e assume voluntariamente tais riscos, salvo quando houver dolo ou culpa grave imputável ao Centro.</p>
|
||||
</section>
|
||||
|
||||
<section id="conducta-institucional">
|
||||
<h2>15. Conduta Institucional</h2>
|
||||
<p>O voluntário compromete-se a manter conduta compatível com os princípios e valores do Centro.</p>
|
||||
<p>É proibido ao voluntário:</p>
|
||||
<ul>
|
||||
<li>praticar atos de violência física ou verbal;</li>
|
||||
<li>discriminar ou assediar qualquer pessoa;</li>
|
||||
<li>consumir drogas ilícitas ou apresentar-se sob seus efeitos;</li>
|
||||
<li>portar armas sem autorização legal e expressa;</li>
|
||||
<li>solicitar doações ou administrar recursos financeiros em nome do Centro sem autorização por escrito;</li>
|
||||
<li>utilizar o nome do Centro para fins pessoais, políticos ou comerciais.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="proteccion-menores">
|
||||
<h2>16. Proteção de Menores e Pessoas em Situação de Vulnerabilidade</h2>
|
||||
<p>Quando as atividades envolverem menores de idade ou pessoas em situação de vulnerabilidade, o voluntário deverá cumprir rigorosamente os protocolos de proteção estabelecidos pelo Centro e a legislação aplicável.</p>
|
||||
</section>
|
||||
|
||||
<section id="conflicto-intereses">
|
||||
<h2>17. Conflito de Interesses</h2>
|
||||
<p>O voluntário deverá comunicar qualquer situação de natureza pessoal, profissional, econômica ou familiar que possa gerar conflito de interesses em relação às atividades do Centro.</p>
|
||||
</section>
|
||||
|
||||
<section id="cumplimiento-normativo">
|
||||
<h2>18. Cumprimento Normativo</h2>
|
||||
<p>O voluntário compromete-se a cumprir toda a legislação aplicável relacionada aos direitos humanos, à proteção de dados pessoais, ao combate à corrupção, à prevenção da lavagem de dinheiro, à igualdade, à não discriminação e às demais normas aplicáveis.</p>
|
||||
</section>
|
||||
|
||||
<section id="uso-imagen-institucional">
|
||||
<h2>19. Uso do Nome e da Identidade Institucional</h2>
|
||||
<p>O nome, o logotipo, as marcas, a identidade institucional e os demais sinais distintivos do Centro somente poderão ser utilizados mediante autorização prévia e por escrito.</p>
|
||||
</section>
|
||||
|
||||
<section id="redes-sociales">
|
||||
<h2>20. Redes Sociais e Comunicações</h2>
|
||||
<p>O voluntário não poderá conceder declarações públicas, entrevistas, comunicados ou realizar publicações em nome do Centro sem autorização prévia.</p>
|
||||
<p>Da mesma forma, compromete-se a utilizar as redes sociais de forma responsável, evitando publicações que possam prejudicar a imagem institucional.</p>
|
||||
</section>
|
||||
|
||||
<section id="donaciones">
|
||||
<h2>21. Doações</h2>
|
||||
<p>A condição de voluntário não confere qualquer direito sobre os bens, recursos, projetos ou doações administrados pelo Centro.</p>
|
||||
<p>Toda campanha de captação de recursos deverá ser previamente autorizada por escrito.</p>
|
||||
</section>
|
||||
|
||||
<section id="fuerza-mayor">
|
||||
<h2>22. Caso Fortuito ou Força Maior</h2>
|
||||
<p>O Centro poderá suspender, alterar ou cancelar qualquer atividade em razão de caso fortuito ou força maior, motivos de segurança, conflitos armados, emergências sanitárias, desastres naturais ou quaisquer outras circunstâncias alheias ao seu controle, sem que isso gere qualquer responsabilidade.</p>
|
||||
</section>
|
||||
|
||||
<section id="legislacion-jurisdiccion">
|
||||
<h2>23. Legislação Aplicável e Jurisdição</h2>
|
||||
<p>O presente Regulamento será regido pela legislação vigente do país onde forem desenvolvidas as atividades de voluntariado.</p>
|
||||
<p>Qualquer controvérsia será submetida à jurisdição dos tribunais competentes desse país.</p>
|
||||
</section>
|
||||
|
||||
<section id="codigo-etica">
|
||||
<h2>Código de Ética do Voluntário</h2>
|
||||
<p>Todo voluntário compromete-se a:</p>
|
||||
<ul>
|
||||
<li>Atuar com honestidade, integridade e transparência.</li>
|
||||
<li>Respeitar a dignidade e os direitos de todas as pessoas.</li>
|
||||
<li>Promover uma cultura de paz, justiça e solidariedade.</li>
|
||||
<li>Manter absoluto sigilo.</li>
|
||||
<li>Evitar conflitos de interesses.</li>
|
||||
<li>Representar o Centro com respeito e profissionalismo.</li>
|
||||
<li>Cumprir a legislação aplicável e as políticas institucionais.</li>
|
||||
<li>Preservar a reputação e os valores do Centro.</li>
|
||||
<li>Atuar sempre com espírito de serviço.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="politica-privacidad">
|
||||
<h2>Política de Privacidade e Tratamento de Dados Pessoais</h2>
|
||||
<p>O Centro reconhece a importância de proteger a privacidade de seus voluntários e compromete-se a tratar todas as informações pessoais em conformidade com a legislação aplicável.</p>
|
||||
<p>Os dados pessoais serão utilizados exclusivamente para:</p>
|
||||
<ul>
|
||||
<li>Administração do Programa de Voluntariado;</li>
|
||||
<li>Organização de atividades e eventos;</li>
|
||||
<li>Comunicação institucional;</li>
|
||||
<li>Cumprimento de obrigações legais;</li>
|
||||
<li>Proteção e segurança dos participantes;</li>
|
||||
<li>Elaboração de estatísticas e relatórios institucionais.</li>
|
||||
</ul>
|
||||
<p>O Centro adotará medidas técnicas, administrativas e organizacionais razoáveis para proteger as informações pessoais contra perda, acesso não autorizado, alteração, divulgação ou uso indevido.</p>
|
||||
<p>Os voluntários poderão exercer os direitos assegurados pela legislação aplicável em relação ao acesso, à retificação, à atualização ou à exclusão de seus dados pessoais.</p>
|
||||
</section>
|
||||
|
|
@ -13,7 +13,7 @@ const tl = createTranslator(Astro.currentLocale);
|
|||
<div class="h-screen pb-20 max-h-[700px] sm:max-h-[900px] md:max-h-[1080px] container bg-[url(/img/DRJBP-1.webp)] bg-no-repeat bg-contain bg-bottom mx-auto mt-16">
|
||||
|
||||
<div class="grid md:grid-cols-2 h-full px-6">
|
||||
<div class="gap-8 md:flex flex-col justify-end">
|
||||
<div class="gap-8 md:flex flex-col justify-end mt-14 md:mt-0">
|
||||
<img
|
||||
src="/img/logo-metalico.webp"
|
||||
alt="Logo Metalico"
|
||||
|
|
|
|||
|
|
@ -27,11 +27,19 @@ locationArray.filter(Boolean).join(', ');
|
|||
---
|
||||
|
||||
<div class="bg-[#EBE5D0] text-[#003421] p-10">
|
||||
<Icon name="ph:arrow-circle-down-thin" class="text-8xl mb-8" />
|
||||
<p class="font-light md:text-2xl text-lg md:mb-8 mb-3">
|
||||
<div class="flex md:flex-col items-center content-center md:items-baseline">
|
||||
<Icon name="ph:arrow-circle-down-thin" class="md:text-8xl text-7xl mb-0 md:mb-8" />
|
||||
{nicedate ? (
|
||||
<p class="font-light md:text-2xl text-lg ml-2 md:ml-0 md:mb-8 mb-3">
|
||||
{locationArray.filter(Boolean).join(', ')}<br />
|
||||
({nicedate}):
|
||||
</p>
|
||||
) : (
|
||||
<p class="font-light md:text-2xl text-lg md:mb-8 mb-3">
|
||||
{locationArray.filter(Boolean).join(', ')}:
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
<h3 class="md:text-2xl text-lg mb-4 font-bold md:mb-8 hover:underline"><a href={`/${locale}/${getLocalizedRoute(routeKey, locale)}/${data.id}`}>{data.data.title}</a></h3>
|
||||
|
||||
<div class="overflow-hidden">
|
||||
|
|
|
|||
|
|
@ -49,6 +49,13 @@ const fieldHelp = (key) => {
|
|||
return v !== k ? v : "";
|
||||
};
|
||||
|
||||
const isMinorBetween12and18 = (key) => {
|
||||
const y = dateParts[key]?.year;
|
||||
if (!y) return false;
|
||||
const age = new Date().getFullYear() - y;
|
||||
return age >= 12 && age < 18;
|
||||
};
|
||||
|
||||
const stepErrors = reactive({});
|
||||
const formatErrors = reactive({});
|
||||
const phoneParts = reactive({});
|
||||
|
|
@ -62,7 +69,7 @@ const months = [
|
|||
|
||||
const years = (() => {
|
||||
const y = new Date().getFullYear();
|
||||
return Array.from({ length: 101 }, (_, i) => y - i);
|
||||
return Array.from({ length: 101 }, (_, i) => y - 12 - i);
|
||||
})();
|
||||
|
||||
const remainingRequired = computed(() => {
|
||||
|
|
@ -322,7 +329,7 @@ const buildPayload = () => {
|
|||
}
|
||||
});
|
||||
});
|
||||
return { formData: { ...formData }, responses, turnstileToken: turnstileToken.value, honeypot: honeypot.value };
|
||||
return { formData: { ...formData, locale: props.locale }, responses, turnstileToken: turnstileToken.value, honeypot: honeypot.value };
|
||||
};
|
||||
|
||||
const handleSubmit = async () => {
|
||||
|
|
@ -585,7 +592,7 @@ const getFieldInputType = (field) => {
|
|||
|
||||
<template v-else>
|
||||
<div v-if="!isSuccess" class="w-full max-w-3xl mx-auto md:px-4 sm:px-0">
|
||||
<div class="flex flex-wrap sm:flex-nowrap items-center justify-center gap-x-1 md:gap-x-2 gap-y-2 sm:gap-y-3 mb-4 sm:mb-6 lg:mb-8">
|
||||
<div class="flex flex-wrap sm:flex-nowrap items-center justify-center gap-x-1 md:gap-x-2 gap-y-2 sm:gap-y-3 mb-4 sm:mb-6 lg:mb-8 overflow-x-auto">
|
||||
<template v-for="(step, index) in config.steps" :key="index">
|
||||
<button
|
||||
type="button"
|
||||
|
|
@ -609,7 +616,7 @@ const getFieldInputType = (field) => {
|
|||
</template>
|
||||
</div>
|
||||
|
||||
<form @submit.prevent="handleSubmit" class="bg-[#EBE6D2] p-5 sm:p-8 lg:p-10 rounded-none">
|
||||
<form @submit.prevent="handleSubmit" class="bg-[#EBE6D2] p-5 sm:p-8 lg:p-10 rounded-none w-auto">
|
||||
<h3 class="text-lg sm:text-xl font-bold text-[#22523F] mb-4 sm:mb-6 text-center font-secondary">
|
||||
{{ tl(currentStepData.label) }}
|
||||
</h3>
|
||||
|
|
@ -713,6 +720,11 @@ const getFieldInputType = (field) => {
|
|||
</select>
|
||||
</div>
|
||||
|
||||
<div v-if="field.type === 'date' && isMinorBetween12and18(field.key)" class="bg-amber-50 border-l-4 border-amber-400 text-amber-800 p-3 mt-1 text-sm flex items-start gap-2">
|
||||
<Icon icon="ph:info" class="text-lg mt-0.5 shrink-0" />
|
||||
<span class="font-secondary">{{ tl("form.fecha_nacimiento_menor_aviso") }}</span>
|
||||
</div>
|
||||
|
||||
<div v-else-if="field.type === 'select'" class="relative">
|
||||
<label
|
||||
class="input w-full bg-white rounded-xl focus-within:outline-2 focus-within:outline-[#22523F]"
|
||||
|
|
@ -960,13 +972,13 @@ const getFieldInputType = (field) => {
|
|||
</button>
|
||||
<div
|
||||
v-if="currentStep === 0 && !reglamentoScrolled"
|
||||
class="absolute bottom-full mb-1 sm:mb-2 left-1/2 -translate-x-1/2 whitespace-nowrap bg-gray-800 text-white text-xs rounded px-3 py-1.5 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-10 shadow-lg"
|
||||
class="absolute bottom-full mb-1 sm:mb-2 right-0 w-64 max-w-[80vw] whitespace-normal text-center leading-normal bg-gray-800 text-white text-xs rounded px-3 py-1.5 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-10 shadow-lg"
|
||||
>
|
||||
{{ tl("form.reglamento_tooltip") }}
|
||||
</div>
|
||||
<div
|
||||
v-else-if="remainingRequired > 0"
|
||||
class="absolute bottom-full mb-1 sm:mb-2 left-1/2 -translate-x-1/2 whitespace-nowrap bg-gray-800 text-white text-xs rounded px-3 py-1.5 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-10 shadow-lg"
|
||||
class="absolute bottom-full mb-1 sm:mb-2 right-0 w-64 max-w-[80vw] whitespace-normal text-center leading-normal bg-gray-800 text-white text-xs rounded px-3 py-1.5 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-10 shadow-lg"
|
||||
>
|
||||
{{ tl(remainingRequired === 1 ? "form.remaining_required_one" : "form.remaining_required", { count: remainingRequired }) }}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,23 +7,23 @@ const tl = createTranslator(Astro.currentLocale);
|
|||
const { props } = Astro.props;
|
||||
---
|
||||
<div class="container mx-auto">
|
||||
<div class="grid md:grid-cols-2 min-h-100">
|
||||
<div class="bg-[#EBE5D0] p-12 md:p-24 grid lg:grid-cols-2">
|
||||
<div class="leftcol flex justify-between flex-col min-h-full">
|
||||
<div class="grid md:grid-cols-2 min-w-0">
|
||||
<div class="bg-[#EBE5D0] p-6 md:p-12 lg:p-24 grid lg:grid-cols-2 min-w-0">
|
||||
<div class="flex flex-col justify-between min-h-full break-all">
|
||||
<h2 class="text-5xl font-secondary text-tertiary font-bold">{tl("values.justice.title")}</h2>
|
||||
<p class="text-lg text-tertiary">{tl("values.justice.text")}</p>
|
||||
<p class="text-lg text-tertiary break-words">{tl("values.justice.text")}</p>
|
||||
</div>
|
||||
<div class="rightcol flex justify-end align-bottom min-h-full ">
|
||||
<Icon name="icon_justice_1" class="text-9xl text-tertiary self-end" />
|
||||
<div class="flex items-end justify-end min-h-full">
|
||||
<Icon name="icon_justice_1" class="text-6xl md:text-9xl text-tertiary" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="bg-tertiary p-12 md:p-24 grid lg:grid-cols-2">
|
||||
<div class="leftcol flex justify-between flex-col min-h-full">
|
||||
<h2 class="text-5xl font-secondary font-bold text-[#CBA16A]">{tl("values.integrity.title")}</h2>
|
||||
<p class="text-[#CBA16A] text-lg">{tl("values.integrity.text")}</p>
|
||||
<div class="bg-tertiary p-6 md:p-12 lg:p-24 grid lg:grid-cols-2 min-w-0">
|
||||
<div class="flex flex-col justify-between min-h-full min-w-0 max-w-full">
|
||||
<h2 class="text-5xl font-secondary font-bold text-[#CBA16A] break-all">{tl("values.integrity.title")}</h2>
|
||||
<p class="text-[#CBA16A] text-lg break-words">{tl("values.integrity.text")}</p>
|
||||
</div>
|
||||
<div class="rightcol flex justify-end align-bottom min-h-full ">
|
||||
<Icon name="icon_justice_2" class="text-[#EBE5D0] text-9xl self-end" />
|
||||
<div class="flex items-end justify-end min-h-full min-w-0 max-w-full">
|
||||
<Icon name="icon_justice_2" class="text-[#EBE5D0] text-6xl md:text-9xl max-w-full h-auto" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -92,6 +92,34 @@ const handleSubmit = async (e) => {
|
|||
|
||||
</fieldset>
|
||||
|
||||
<!-- Submit -->
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="isLoading"
|
||||
class="bg-[#003421] px-6 py-2 text-sm cursor-pointer transition duration-300"
|
||||
:class="[
|
||||
isLoading ? 'opacity-70 cursor-not-allowed' : 'hover:bg-[#EBE5D0] hover:text-[#003421]',
|
||||
isError ? 'bg-red-600 text-white' : ''
|
||||
]"
|
||||
>
|
||||
<span v-if="isLoading" class="flex items-center gap-2">
|
||||
<span class="w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"></span>
|
||||
Enviando...
|
||||
</span>
|
||||
|
||||
<span v-else-if="isSuccess">
|
||||
Enviado ✓
|
||||
</span>
|
||||
|
||||
<span v-else-if="isError">
|
||||
Error
|
||||
</span>
|
||||
|
||||
<span v-else>
|
||||
{{ tl("footer.form.button") }}
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<div class="flex flex-row justify-between items-center mt-4">
|
||||
|
||||
<!-- Social Icons -->
|
||||
|
|
@ -127,34 +155,6 @@ const handleSubmit = async (e) => {
|
|||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- Submit -->
|
||||
<button
|
||||
type="submit"
|
||||
:disabled="isLoading"
|
||||
class="bg-[#003421] px-6 py-2 text-sm cursor-pointer transition duration-300"
|
||||
:class="[
|
||||
isLoading ? 'opacity-70 cursor-not-allowed' : 'hover:bg-[#EBE5D0] hover:text-[#003421]',
|
||||
isError ? 'bg-red-600 text-white' : ''
|
||||
]"
|
||||
>
|
||||
<span v-if="isLoading" class="flex items-center gap-2">
|
||||
<span class="w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin"></span>
|
||||
Enviando...
|
||||
</span>
|
||||
|
||||
<span v-else-if="isSuccess">
|
||||
Enviado ✓
|
||||
</span>
|
||||
|
||||
<span v-else-if="isError">
|
||||
Error
|
||||
</span>
|
||||
|
||||
<span v-else>
|
||||
{{ tl("footer.form.button") }}
|
||||
</span>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -10,37 +10,37 @@ const tl = createTranslator(Astro.currentLocale);
|
|||
<h2 class="text-3xl lg:text-5xl text-center font-bold font-secondary my-8 text-[#003421]">{tl("formation.title")}</h2>
|
||||
<p class="text-lg w-2/3 mx-auto mb-20 text-[#003421] text-justify" set:html={tl("formation.text")}></p>
|
||||
|
||||
<div class="grid xl:grid-cols-3 text-[#003421] gap-20">
|
||||
<div class="bg-[#EBE5D0] p-12 relative pb-40">
|
||||
<div class="grid xl:grid-cols-3 text-[#003421] md:gap-20 gap-10 md:p-0 p-5">
|
||||
<div class="bg-[#EBE5D0] p-12 relative pb-32 md:pb-52">
|
||||
<Icon name="ph:arrow-circle-down-thin" class="text-6xl mb-12 text-[#003421]" />
|
||||
<h4 class="text-[#003421] text-2xl mb-12">{tl("formation.area.title")}</h4>
|
||||
|
||||
<ul class="text-lg list-disc font-normal list-inside leading-8" set:html={tl("formation.area.text")}></ul>
|
||||
|
||||
<div class="bottom-12 right-12 absolute">
|
||||
<Icon name="icon_formation_1" class="text-8xl text-[#003421]" />
|
||||
<div class="bottom-8 right-8 md:bottom-12 md:right-12 absolute">
|
||||
<Icon name="icon_formation_1" class="text-8xl md:text-9xl text-[#003421]" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-[#EBE5D0] text-[#003421] p-12 relative pb-40">
|
||||
<div class="bg-[#EBE5D0] p-12 relative pb-32 md:pb-52">
|
||||
<Icon name="ph:arrow-circle-down-thin" class="text-6xl mb-12 text-[#003421]" />
|
||||
<h4 class="text-[#003421] text-2xl mb-12">{tl("formation.consulting.title")}</h4>
|
||||
|
||||
<p class="text-lg font-normal">{tl("formation.consulting.text")}</p>
|
||||
|
||||
<div class="bottom-12 right-12 absolute">
|
||||
<Icon name="icon_formation_2" class="text-8xl" />
|
||||
<div class="bottom-8 right-8 md:bottom-12 md:right-12 absolute">
|
||||
<Icon name="icon_formation_2" class="text-8xl md:text-9xl text-[#003421]" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-[#EBE5D0] text-[#003421] p-12 relative pb-40">
|
||||
<div class="bg-[#EBE5D0] p-12 relative pb-32 md:pb-52">
|
||||
<Icon name="ph:arrow-circle-down-thin" class="text-6xl mb-12 text-[#003421]" />
|
||||
<h4 class="text-[#003421] text-2xl mb-12" set:html={tl("formation.action.title")}></h4>
|
||||
|
||||
<p class="text-lg font-normal" set:html={tl("formation.action.text")}></p>
|
||||
|
||||
<div class="bottom-12 right-12 absolute">
|
||||
<Icon name="icon_formation_3" class="text-8xl" />
|
||||
<div class="bottom-8 right-8 md:bottom-12 md:right-12 absolute">
|
||||
<Icon name="icon_formation_3" class="text-8xl md:text-9xl text-[#003421]" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,111 @@
|
|||
---
|
||||
locale: rw
|
||||
title: Amahoro y'igihe gito cyangwa intangiriro yo kongera gutunganya gahunda y'Isi mu Burasirazuba bwo Hagati?
|
||||
date: 2026-07-26
|
||||
order: 1
|
||||
# city: 'Palmira'
|
||||
# country: 'CO'
|
||||
# state: 'Valle del Cauca'
|
||||
slug: 2026-07-26-amahoro-y-igihe-gito-cyangwa-intangiriro-yo-kongera-gutunganya-gahunda-y-isi-mu-burasirazuba-bwo-hagati
|
||||
thumbnail: 'https://ik.imagekit.io/crpy/tr:w-1280,q-100/comunicado-1.webp'
|
||||
# tags: [Comunicado, Venezuela, Estados Unidos]
|
||||
gallery: [
|
||||
{
|
||||
image: 'https://ik.imagekit.io/crpy/tr:w-1280,h-900,cm-pad_resize,bg-blurred,q-70/comunicado-1.webp',
|
||||
},
|
||||
]
|
||||
|
||||
---
|
||||
# Amahoro y'igihe gito cyangwa intangiriro yo kongera gutunganya gahunda y'Isi mu Burasirazuba bwo Hagati?
|
||||
|
||||
Mu byumweru bishize, ibyabaye mu Burasirazuba bwo Hagati byongeye gushyira ako karere mu rwego rw'ibiri kwitabwaho cyane ku rwego mpuzamahanga. Guhagarara by'agateganyo kw'ibitero bya Leta Zunze Ubumwe za Amerika ku butaka bwa Irani, nyuma y'ibyumweru hafi bibiri by'imirwano idahagarara, byafunguye igihe cyo gutegereza, aho abasesenguzi benshi babibona nk'intambwe ishobora kuganisha ku rwego rw'ububanyi n'amahanga bushingiye ku ngamba z'igihe kirekire.
|
||||
|
||||
Ibiganiro bya tekiniki byabereye muri Oman, hamwe n'imbaraga zigamije gushimangira umutekano w'ubwikorezi bunyura mu muhora wa Ormuz, bigaragara ko bigamije kugabanya umwuka mubi no kwirinda ko amakimbirane yarushaho gukaza umurego, ibintu byarushaho guhungabanya umutekano w'akarere ndetse n'ubucuruzi mpuzamahanga.
|
||||
|
||||
Ariko, kuri **Dr. José Benjamín Pérez Matos**, inyuma y'izo ngamba z'ububanyi n'amahanga hari ukuri kwimbitse kandi kw'ingirakamaro kurushaho, kudashobora gusobanurwa gusa hashingiwe ku miterere ya politiki mpuzamahanga.
|
||||
Agaruka ku bihe ako karere karimo kunyuramo, yagize ati:
|
||||
|
||||
**«None rero, muri iyi minsi Leta Zunze Ubumwe za Amerika iracyafite iyo ntambara na Irani; kandi icyo numvise bwa nyuma ni uko bigaragara ko bazabihagararaho. Nyamara bagombaga kurandura burundu icyo kibazo, bagihereye mu mizi! Nibakomeza kujugunya ibisasu bibiri gusa hanyuma bakikuramo, nyuma bazongera gukora nk'ibyo. Murabona? Bigaragara nk'ibikorwa by'amahoro y'igihe gito, ariko ikibi kiracyariho.»**
|
||||
|
||||
Aya magambo aduhamagarira gutandukanya amahoro y'igihe gito n'ikorwa ryo gukuraho burundu impamvu zitera amakimbirane. Dukurikije iyo myumvire, guhagarika ibikorwa bya gisirikare by'agateganyo ntibivuze byanze bikunze ko ikibazo cyakemutse, ahubwo ni ikiruhuko cy'igihe gito mu nzira y'ibikorwa bitararangira.
|
||||
|
||||
Imigendekere ubwayo y'ibyabaye ku rwego mpuzamahanga yemeza uburyo uko ibintu bimeze ubu bidafite gihamya yo kuramba.
|
||||
|
||||
Mu gihe ingabo za Leta Zunze Ubumwe za Amerika zahagaritse ibitero byazo byo mu kirere nyuma y'amajoro cumi n'atatu akurikirana y'ibisasu, ugushidikanya gukomeje kwiganje mu muryango mpuzamahanga. Imiterere y'ibintu iracyafunguye, kandi ibihugu bikomeye bikomeje gusuzuma intambwe zikurikira, mu karere umutekano wako ugikomeje kugira uruhare rukomeye mu kuringaniza imbaraga za politiki y'Isi.
|
||||
|
||||
Muri uru rwego, Perezida wa Leta Zunze Ubumwe za Amerika, Donald Trump, yakomeje gufata umwanya uhuza igitutu cya dipolomasi n'icyizere cyo kugera ku bwumvikane na Tehran.
|
||||
|
||||
Ku ruhande rumwe, yatanze imiburo ikomeye ku butegetsi bwa Irani; ku rundi ruhande, yeruye yagaragaje icyizere cy'uko hashobora kubaho ibiganiro, ubwo yabwiraga itangazamakuru ryari ryateraniye mu Biro bya Oval ati:
|
||||
|
||||
«Dushobora kugirana ibiganiro na bo, kandi ni na byo turimo gukora muri aka kanya.»
|
||||
|
||||
Ariko kandi, uwo muyobozi ubwe yagabanyije icyo cyizere avuga ko atabona ko Irani “yiteguye” kugeza ubu kugera ku masezerano ya nyuma.
|
||||
|
||||
Muri icyo gihe kandi, yemeye ko:
|
||||
|
||||
«Ntekereza ko bagenda barushaho gukomera ku cyemezo uko iminsi igenda ishira; wenda kubera impamvu igaragara.»
|
||||
|
||||
Amagambo ya Perezida wa Leta Zunze Ubumwe za Amerika agaragaza imiterere y'ibintu aho igitutu cya gisirikare, ibiganiro bya dipolomasi, ndetse no kudasobanuka ku iherezo ry'amakimbirane bikomeje kubana hamwe.
|
||||
|
||||
Imvano y'ubuhanuzi y'ikibazo
|
||||
|
||||
Kuri **Dr. José Benjamín Pérez Matos**, gusobanukirwa neza ibiri kuba hagati ya Washington na Tehran bisaba kureba birenze amakuru asanzwe atangwa n'itangazamakuru, ahubwo hakigwa ibyabaye hifashishijwe imyumvire yagutse kurushaho.
|
||||
|
||||
Muri ubwo buryo, yavuze ko ari ngombwa kureba ikarita ya geopolitiki binyuze mu ndorerwamo y'ubuhanuzi bwa Bibiliya buboneka mu gice cya 2 cy'igitabo cya Daniyeli. Muri urwo rwego yagize ati:
|
||||
|
||||
**«Uwo bwami bw'u Buperesi, ubwo bwami bwa Irani, bugomba gukurwaho burundu, kugira ngo hasigare gusa ubwami bw'i Roma; ni ukuvuga ubwami bw'amaguru y'icyuma n'ibumba ryokeje.»**
|
||||
|
||||
Muri iyi myumvire ishingiye ku by'iyobokamana, gahunda y'Isi ya nyuma ntiteganya ko habaho ibice bitandukanye bya geopolitiki bizakomeza kubaho icyarimwe nk'imyubakire y'imbaraga zigereranywa.
|
||||
|
||||
Nk'uko **Dr. José Benjamín Pérez Matos** yabisobanuye:
|
||||
|
||||
**«Nta bundi bwami bushobora kubaho kandi ngo bugendere hamwe n'ubwo bwami bwa nyuma bw'amaguru y'icyuma n'ibumba ryokeje; bugomba gusigara ari bwo bwonyine. Ni yo mpamvu ibisigazwa bisigaye by'ubwo bwami bw'u Buperesi: Irani, bigomba gukurwaho. Kandi ibyo ni ikimenyetso gikomeye cyane, igihe ibyo bizaba bibaye. Ibyo bizashyiraho ikimenyetso gikomeye cya nyuma mu buhanuzi muri iyi minsi.»**
|
||||
|
||||
Dukurikije ubu busobanuro, ibyabaye muri iki gihe birenze urwego rwa politiki n'igisirikare gusa, ahubwo biri mu murongo w'amateka manini kurushaho, aho, nk'uko **Dr. José Benjamín Pérez Matos** abivuga, iterambere ryabyo rigize igice cyo gusohora buhoro buhoro k'ubuhanuzi bwa Bibiliya.
|
||||
|
||||
## Dipolomasi y'igitutu gikomeye muri White House
|
||||
|
||||
Ni muri uru rwego rw'ubushyamirane bukabije ni ho uruzinduko rwa Minisitiri w'Intebe wa Leta ya Isirayeli, Benjamín Netanyahu, muri Leta Zunze Ubumwe za Amerika ruboneramo umwanya wihariye.
|
||||
|
||||
Nubwo impamvu yatangajwe ku mugaragaro y'urwo rugendo ari ukwitabira umuhango wo gushyingura no gusezera kuri senateri witabye Imana Lindsey Graham — wasobanuwe n'Ibiro bya Minisitiri w'Intebe nk’ “inshuti ya Isirayeli” — ibiganiro biteganyijwe hagati y'abayobozi bakuru b'ibihugu byombi bizibanda ku hazaza hihuse h'Uburasirazuba bwo Hagati ndetse n'ibibazo by'ingamba akarere gahura na byo.
|
||||
|
||||
Agaruka kuri ibyo biganiro, **Dr. José Benjamín Pérez Matos** yagize ati:
|
||||
|
||||
**«Noneho, reka dutegereze ko… muri iyi minsi hari inama izabera i Washington cyangwa i New York. Minisitiri w’Intebe wa Isirayeli, Benjamín Netanyahu, azaba ahari; kandi bazaganira kuri ibyo byose na byo.»**
|
||||
|
||||
Iby'ingenzi muri ibi biganiro ni uko Isirayeli yakurikiranye yitonze uko ibitero bya Leta Zunze Ubumwe za Amerika byagenze, izi neza ko muri iki kibazo harimo kugenzura inzira y'ingenzi y'ubwikorezi bwo mu nyanja inyuramo hafi makumyabiri ku ijana bya peteroli icuruzwa ku isi.
|
||||
|
||||
Kubera iyo mpamvu, kongera gutangiza ibiganiro hagati ya Washington na Yerusalemu bigamije guhuza imyumvire ku birebana n'umwanzi bahuriyeho, no guhuza ingamba zizakurikiraho mu rwego rw'ubutabazi n'umutekano, mu bihe birangwa n'ihindagurika ridahoraho mu Karere k'Ikigobe cy'u Buperesi.
|
||||
|
||||
## Irushanwa ryo guhangana n'igihe mbere y'amatora.
|
||||
Uretse ibijyanye n'igisirikare n'ububanyi n'amahanga, ikintu cy'igihe na cyo kigaragara nk'imwe mu ngingo zikomeye kandi zifite uburemere muri ibi bihe.
|
||||
|
||||
Kuba amatora ateganyijwe yegereje byinjiza indi ngingo ya politiki ishobora guhindura ku buryo bugaragara imiterere y'ibibera mu rwego rwa geopolitiki.
|
||||
|
||||
Muri Leta Zunze Ubumwe za Amerika, Perezida Donald Trump yagaragaje ko adaha agaciro ibitekerezo bivuga ko izamuka ry'ibiciro by'ibikomoka kuri peteroli rishobora kugira ingaruka ku matora ari imbere.
|
||||
|
||||
Imbere y'itangazamakuru, yagize ati:
|
||||
|
||||
"N'ubwo abantu bose bavuga iby'amatora, ntabwo nihuta... Amatora azikemurira ubwayo."
|
||||
|
||||
Nyamara, **Dr. José Benjamín Pérez Matos** yagaragaje ko hari indi gahunda y'amatora, nk'uko abibona, ifite akamaro karenze ako ku hazaza ha vuba h'Uburasirazuba bwo Hagati: amatora ateganyijwe muri Isirayeli.
|
||||
|
||||
Kuri iyo ngingo yagize ati:
|
||||
|
||||
**"Ariko nimurebe ibibera muri Isirayeli: ubu hagiye kuba amatora mu kwezi k'Ukwakira. Bagomba kwihutira gukora ibyo bagomba gukora. Kuko nihaza Minisitiri w'Intebe udashyigikiye (cyangwa udakurikiza uwo murongo w'ibitekerezo) w'itsinda ry'amadini n'Abayahudi b'aba-Orutodogisi, maze hakaza undi agatsinda ayo matora yo mu Ukwakira, ibintu bizakomera kuri Isirayeli. Ni ukuvuga ko bakwiriye kubyaza umusaruro iki gihe gisigaye cya manda, mu gihe haba havutse impinduka itunguranye muri ayo matora yo mu Ukwakira.”**
|
||||
|
||||
Aya magambo agaragaza akamaro **Dr. José Benjamín Pérez Matos** aha ingengabihe ya politiki ya Isirayeli mu rwego rw'ibibera mu karere. Dukurikije uko abibona, igihe gisigaye cyo gushimangira imyanzuro imwe n'imwe y'ingenzi mu rwego rw'ingamba ni gito cyane, kandi gishobora guterwa impinduka n'ibizava mu matora ateganyijwe.
|
||||
|
||||
Nk'uko **Dr. José Benjamín Pérez Matos** ubwe yabivuze:
|
||||
|
||||
"Igihe gisigaye cyo gushimangira imyanya y'imbaraga ni gito cyane. Abanyapolitiki bagomba gukora bihuse, bitewe n'uko hashobora kubaho ihinduka ritunguranye ry'ibyavuye mu matora cyangwa igitunguranye mu matora.”
|
||||
|
||||
Uyu muburo ni wo usoza mu buryo busanzwe isesengura rya geopolitiki ryatanzwe muri iki gitekerezo. Nyamara, kuri **Dr. José Benjamín Pérez Matos**, ibyabaye n'ibirimo kuba ku rwego mpuzamahanga ntibishobora gusobanurwa gusa hashingiwe ku byemezo by'abantu, ububanyi n'amahanga cyangwa ingamba za gisirikare.
|
||||
|
||||
Hejuru y'izo ngingo zose, avuga ko hari umugambi urenze byose, ukomeje gusohora nk'uko gahunda y'ubuhanuzi yahishuwe mu Byanditswe Byera ibiteganya.
|
||||
|
||||
Ni yo mpamvu yasoreje inyigisho ye yibutsa ati:
|
||||
|
||||
**"Ariko mwibuke ko ibintu byose ari, kandi byose bizasohora nk'uko ubuhanuzi buri. Nta na kimwe muri ibi kiri mu maboko y'abantu.”**
|
||||
|
||||
Dukurikije imyumvire yatanzwe na **Dr. José Benjamín Pérez Matos**, ibibera muri iki gihe mu Burasirazuba bwo Hagati birenze ibibazo by'igihe gito byo ku rwego mpuzamahanga, ahubwo biri mu bigize inzira y'amateka ifite urugero runini kurushaho. Uretse ibiganiro by'ububanyi n'amahanga, ibyemezo bya gisirikare cyangwa impinduka za politiki zishobora kubaho mu bihugu bitandukanye birebwa n'ibi bibazo, iherezo rizasubiza ku isohozwa ry'umugambi w'ubuhanuzi, nk'uko avuga ko Ibyanditswe bibigaragaza, uzageza ku gushyirwaho k'ubutegetsi bwa nyuma bwatangajwe mu gitabo cya Daniyeli.
|
||||
150
src/i18n/en.json
150
src/i18n/en.json
|
|
@ -200,5 +200,153 @@
|
|||
"footer.form.name": "Name and Lastname",
|
||||
"footer.form.mesagge": "Write a message",
|
||||
"footer.form.button": "Send",
|
||||
"footer.reserved": "©2026 All Rights Reserved. Kingdom of Peace and Justice Center"
|
||||
"footer.reserved": "©2026 All Rights Reserved. Kingdom of Peace and Justice Center",
|
||||
"form.aceptacion_reglamento": "Acceptance Statement",
|
||||
"form.aceptacion.leido": "I have read and accept these Regulations.",
|
||||
"form.aceptacion.codigo_etica": "I accept the Center's Code of Conduct.",
|
||||
"form.aceptacion.datos": "I authorize the processing of my personal data in accordance with the Privacy Policy.",
|
||||
"form.aceptacion.voluntaria": "I confirm that my participation is completely voluntary and that there is no employment, contractual, or representative relationship with the Center.",
|
||||
"form.aceptacion.verdadera": "I confirm that all information provided is true.",
|
||||
"form.aceptacion.firma_validez": "I accept that my electronic consent shall have the same legal validity as a handwritten signature, in accordance with applicable law.",
|
||||
"form.reglamento_firma": "Signature",
|
||||
"form.reglamento_firma_placeholder": "Full name as signature",
|
||||
"form.leer_reglamento": "Read Full Regulations",
|
||||
"form.reglamento_titulo": "General Volunteer Program Regulations",
|
||||
"form.reglamento_confirmar": "I have read and understand the Regulations in their entirety",
|
||||
"form.reglamento_cerrar": "Close",
|
||||
"form.reglamento_leido": "You have read the full Regulations",
|
||||
"form.reglamento_scroll_needed": "Scroll to the end to confirm you have read the Regulations",
|
||||
"form.reglamento_aviso": "You must read the full Regulations in order to check the acceptance boxes and continue with the form.",
|
||||
"form.reglamento_tooltip": "You must read and scroll to the end of the Regulations to continue",
|
||||
"form.nombre": "Name(s)",
|
||||
"form.segundo_nombre": "Middle Name",
|
||||
"form.apellido": "Last name(s)",
|
||||
"form.documentos": "Government ID Number / Passport Number",
|
||||
"form.correo": "Email address",
|
||||
"form.fecha_nacimiento": "Date of birth",
|
||||
"form.nacionalidad": "Nationality",
|
||||
"form.sexo": "Gender",
|
||||
"form.sexo.m": "Male",
|
||||
"form.sexo.f": "Female",
|
||||
"form.sexo.o": "Other",
|
||||
"form.direccion": "Address Line 1",
|
||||
"form.direccion_postal": "Postal Address",
|
||||
"form.ciudad": "City",
|
||||
"form.estado": "State / Province",
|
||||
"form.pais": "Country",
|
||||
"form.codigo_postal": "Postal Code",
|
||||
"form.mobile": "Mobile phone",
|
||||
"form.whatsapp": "WhatsApp",
|
||||
"form.profesion": "Profession or occupation",
|
||||
"form.lugar_trabajo_actual": "Current place of employment",
|
||||
"form.nivel_academico": "Education level",
|
||||
"form.idioma": "Languages spoken",
|
||||
"form.idioma.esp": "Spanish",
|
||||
"form.idioma.ing": "English",
|
||||
"form.idioma.heb": "Hebrew",
|
||||
"form.idioma.port": "Portuguese",
|
||||
"form.idioma.franc": "French",
|
||||
"form.idioma.otro": "Other",
|
||||
"form.idioma_otro": "Other (specify)",
|
||||
"form.voluntariado_anterior": "Have you volunteered before?",
|
||||
"form.voluntariado_anterior.si": "Yes",
|
||||
"form.voluntariado_anterior.no": "No",
|
||||
"form.caso_si": "If yes, please indicate where and in what roles",
|
||||
"form.nivel.basico": "Basic",
|
||||
"form.nivel.intermedio": "Intermediate",
|
||||
"form.nivel.avanzado": "Advanced",
|
||||
"form.areas_colaborar": "Select the areas in which you would like to collaborate",
|
||||
"form.areas.ayuda_humanitaria": "Humanitarian Aid",
|
||||
"form.areas.educacion": "Education",
|
||||
"form.areas.desarrollo_comunitario": "Community Development",
|
||||
"form.areas.liderazgo": "Leadership",
|
||||
"form.areas.logistica": "Logistics",
|
||||
"form.areas.organizacion_eventos": "Event Organization",
|
||||
"form.areas.comunicacion_institucional": "Institutional Communication",
|
||||
"form.areas.fotografia_medios": "Photography and Media",
|
||||
"form.areas.recaudacion_fondos": "Fundraising",
|
||||
"form.areas.gestion_proyectos": "Project Management",
|
||||
"form.areas.traduccion_interpretacion": "Translation and Interpretation",
|
||||
"form.areas.asesoria_juridica": "Legal Support",
|
||||
"form.areas.servicios_medicos": "Medical Services / First Aid",
|
||||
"form.areas.diplomacia_publica": "Public Diplomacy",
|
||||
"form.areas.administracion": "Administration",
|
||||
"form.areas.tecnologia_innovacion": "Technology and Innovation",
|
||||
"form.areas.otra": "Other",
|
||||
"form.areas_otra": "Other (specify)",
|
||||
"form.dias_disponibles": "Days when you are available",
|
||||
"form.dias.lunes": "Monday",
|
||||
"form.dias.martes": "Tuesday",
|
||||
"form.dias.miercoles": "Wednesday",
|
||||
"form.dias.jueves": "Thursday",
|
||||
"form.dias.viernes": "Friday",
|
||||
"form.dias.sabado": "Saturday",
|
||||
"form.dias.domingo": "Sunday",
|
||||
"form.horario_preferido": "Preferred schedule",
|
||||
"form.horario.manana": "Morning",
|
||||
"form.horario.tarde": "Afternoon",
|
||||
"form.horario.noche": "Evening",
|
||||
"form.horario.segun": "According to the needs of the Center",
|
||||
"form.fuera_ciudad": "Are you willing to participate in events outside your city?",
|
||||
"form.misiones_internacionales": "Are you willing to participate in international events or missions?",
|
||||
"form.condicion_medica": "Do you have any medical conditions that the Center should be aware of?",
|
||||
"form.condicion_medica_cual": "If yes, please specify",
|
||||
"form.alergias": "Allergies",
|
||||
"form.medicamentos": "Medications taken on a permanent basis",
|
||||
"form.emergencia_nombre": "Full name",
|
||||
"form.emergencia_parentesco": "Relationship",
|
||||
"form.emergencia_telefono": "Phone number",
|
||||
"form.emergencia_correo": "Email address",
|
||||
"form.declaracion_voluntario": "I declare under penalty of perjury, that:",
|
||||
"form.declaracion.verdadera": "All information provided in this application is true and complete.",
|
||||
"form.declaracion.acepto_reglamento": "I have read and accept the Kingdom of Peace and Justice Center General Volunteer Program Regulations and Conditions.",
|
||||
"form.declaracion.compromiso_etica": "I agree to comply with the Code of Conduct, institutional policies, and instructions from the Center's representatives.",
|
||||
"form.declaracion.autorizo_datos": "I authorize the processing of my personal data in accordance with the Center's Privacy Policy and applicable law.",
|
||||
"form.declaracion.confidencialidad": "I agree to maintain absolute confidentiality regarding all information to which I have access during my participation.",
|
||||
"form.declaracion.voluntaria": "I understand that my participation is completely voluntary and does not create any employment relationship with the Center.",
|
||||
"form.confirmar_nombre": "Full name",
|
||||
"form.confirmar_firma": "Signature",
|
||||
"form.confirmacion": "Final confirmation",
|
||||
"form.confirmacion_label": "I confirm that the personal data and signature shown above are correct and correspond to my person.",
|
||||
"terminos.title": "Terms and Conditions",
|
||||
"terminos.text": "General Volunteer Program Regulations",
|
||||
"form.page_title": "VOLUNTEER REGISTRATION APPLICATION",
|
||||
"form.page_desc": "Complete your details to join the Kingdom of Peace and Justice Center.",
|
||||
"form.step1_reglamento": "Regulations and Acceptance",
|
||||
"form.step2": "Personal Information",
|
||||
"form.step3": "Academic Background and Experience",
|
||||
"form.step4": "Areas of Interest for Volunteering",
|
||||
"form.step5": "Availability",
|
||||
"form.step6": "Medical Information",
|
||||
"form.step7": "Emergency Contact",
|
||||
"form.step8": "Volunteer Declaration",
|
||||
"form.submit": "Submit Form",
|
||||
"form.next": "Next",
|
||||
"form.back": "Back",
|
||||
"form.sending": "Sending...",
|
||||
"form.success": "Sent successfully!",
|
||||
"form.error": "Error submitting",
|
||||
"form.required": "This field is required",
|
||||
"form.optional": "This field is optional",
|
||||
"form.remaining_required_one": "1 required field remaining",
|
||||
"form.remaining_required": "{count} required fields remaining",
|
||||
"form.phone_invalid": "Only numbers allowed",
|
||||
"form.phone_number_invalid": "Invalid number (min. 7 digits, max. 15)",
|
||||
"form.phone_code_select": "Code",
|
||||
"form.config_error": "Error loading the form. Please try again later.",
|
||||
"form.si": "Yes",
|
||||
"form.no": "No",
|
||||
"form.select_placeholder": "Select {label}",
|
||||
"form.step_counter": "Step {current} of {total}",
|
||||
"form.success_title": "Registration completed successfully!",
|
||||
"form.success_info": "Your volunteer registration application has been received successfully.",
|
||||
"form.success_detail": "For more information, you can contact us through the official channels of the Kingdom of Peace and Justice Center. We appreciate your interest and commitment.",
|
||||
"form.back_home": "Back to home",
|
||||
"form.documentos_help": "Enter the number of an official identity document issued by your country (e.g.: identity card, ID, national ID card, or passport, as applicable).",
|
||||
"form.lugar_trabajo_actual_help": "Indicate the city, province, and country where your current workplace is located.",
|
||||
"form.nacionalidad_help": "Indicate your country of birth.",
|
||||
"form.nivel_academico_help": "Indicate your highest level of education (e.g.: high school, university, postgraduate).",
|
||||
"form.fecha_nacimiento_help": "If you are under 18, you can indicate that your occupation is “Student”. Registration can also be completed from age 12 onward, accompanied by a parent or legal guardian.",
|
||||
"form.fecha_nacimiento_menor_aviso": "Registration can also be completed from age 12 onward, accompanied by a parent or legal guardian; and if you are a student, you can indicate it in the “Profession or occupation” field.",
|
||||
"form.profesion_help": "If you are under 18, you can indicate “Student” as your occupation."
|
||||
}
|
||||
|
|
@ -231,9 +231,9 @@
|
|||
"form.whatsapp": "WhatsApp",
|
||||
"form.aceptacion_reglamento": "Declaración de Aceptación",
|
||||
"form.aceptacion.leido": "He leído y acepto el presente Reglamento.",
|
||||
"form.aceptacion.codigo_etica": "Acepto el Código de Ética del Centro",
|
||||
"form.aceptacion.codigo_etica": "Acepto el Código de Ética del Centro.",
|
||||
"form.aceptacion.datos": "Autorizo el tratamiento de mis datos personales conforme a la Política de Privacidad.",
|
||||
"form.aceptacion.voluntaria": "Confirmo que mi participación es completamente voluntaria y que no existe relación laboral, contractual o de representación con el Centro",
|
||||
"form.aceptacion.voluntaria": "Confirmo que mi participación es completamente voluntaria y que no existe relación laboral, contractual o de representación con el Centro.",
|
||||
"form.aceptacion.verdadera": "Confirmo que toda la información proporcionada es verdadera.",
|
||||
"form.aceptacion.firma_validez": "Acepto que mi consentimiento electrónico tendrá la misma validez jurídica que una firma manuscrita, conforme a la legislación aplicable.",
|
||||
"form.reglamento_firma": "Firma electrónica",
|
||||
|
|
@ -347,5 +347,8 @@
|
|||
"form.documentos_help": "Ingrese el número de un documento oficial de identidad emitido por su país (por ejemplo: cédula de identidad, DNI, tarjeta de identidad o pasaporte, según corresponda).",
|
||||
"form.lugar_trabajo_actual_help": "Indique la ciudad, provincia y país donde se encuentra su lugar de trabajo actual.",
|
||||
"form.nacionalidad_help": "Indique su país de nacimiento.",
|
||||
"form.nivel_academico_help": "Indique su nivel académico alcanzado (ej.: secundario, universitario, posgrado)."
|
||||
"form.nivel_academico_help": "Indique su nivel académico alcanzado (ej.: secundario, universitario, posgrado).",
|
||||
"form.fecha_nacimiento_help": "La inscripción también podrá ser realizada desde los 12 años en adelante, acompañado por sus padres o representante legal; y si son estudiantes, podrán indicarlo en el campo en \"profesión u ocupación\".",
|
||||
"form.fecha_nacimiento_menor_aviso": "La inscripción también podrá ser realizada desde los 12 años en adelante, acompañado por sus padres o representante legal; y si son estudiantes, podrán indicarlo en el campo en \"profesión u ocupación\".",
|
||||
"form.profesion_help": "Si es menor de 18 años, puede indicar «Estudiante» como su ocupación."
|
||||
}
|
||||
|
|
|
|||
150
src/i18n/pt.json
150
src/i18n/pt.json
|
|
@ -200,5 +200,153 @@
|
|||
"footer.form.name": "Nome completo",
|
||||
"footer.form.mesagge": "Escreva a sua mensagem",
|
||||
"footer.form.button": "Enviar",
|
||||
"footer.reserved": "©2026. Todos os Direitos Reservados. Centro do Reino de Paz e Justiça."
|
||||
"footer.reserved": "©2026. Todos os Direitos Reservados. Centro do Reino de Paz e Justiça.",
|
||||
"form.aceptacion_reglamento": "Declaração de Aceitação",
|
||||
"form.aceptacion.leido": "Li e aceito o presente Regulamento.",
|
||||
"form.aceptacion.codigo_etica": "Aceito o Código de Ética do Centro",
|
||||
"form.aceptacion.datos": "Autorizo o tratamento dos meus dados pessoais conforme a Política de Privacidade.",
|
||||
"form.aceptacion.voluntaria": "Confirmo que minha participação é completamente voluntária e que não existe relação trabalhista, contratual ou de representação com o Centro",
|
||||
"form.aceptacion.verdadera": "Confirmo que todas as informações fornecidas são verdadeiras.",
|
||||
"form.aceptacion.firma_validez": "Aceito que meu consentimento eletrônico terá a mesma validade jurídica que uma assinatura manuscrita, conforme a legislação aplicável.",
|
||||
"form.reglamento_firma": "Assinatura",
|
||||
"form.reglamento_firma_placeholder": "Nome completo como assinatura",
|
||||
"form.leer_reglamento": "Ler Regulamento Completo",
|
||||
"form.reglamento_titulo": "Regulamento Geral do Programa de Voluntariado",
|
||||
"form.reglamento_confirmar": "Li e compreendo o Regulamento em sua totalidade",
|
||||
"form.reglamento_cerrar": "Fechar",
|
||||
"form.reglamento_leido": "Você leu o Regulamento completo",
|
||||
"form.reglamento_scroll_needed": "Desça até o final para confirmar que leu o Regulamento",
|
||||
"form.reglamento_aviso": "Você deve ler o Regulamento completo para poder marcar as caixas de aceitação e continuar com o formulário.",
|
||||
"form.reglamento_tooltip": "Você deve ler e descer até o final do Regulamento para continuar",
|
||||
"form.nombre": "Nome(s)",
|
||||
"form.segundo_nombre": "Segundo Nome",
|
||||
"form.apellido": "Sobrenome(s)",
|
||||
"form.documentos": "Documento de Identidade / Passaporte",
|
||||
"form.correo": "E-mail",
|
||||
"form.fecha_nacimiento": "Data de nascimento",
|
||||
"form.nacionalidad": "Nacionalidade",
|
||||
"form.sexo": "Sexo",
|
||||
"form.sexo.m": "Masculino",
|
||||
"form.sexo.f": "Feminino",
|
||||
"form.sexo.o": "Outro",
|
||||
"form.direccion": "Endereço completo",
|
||||
"form.direccion_postal": "Endereço Postal",
|
||||
"form.ciudad": "Cidade",
|
||||
"form.estado": "Estado / Província",
|
||||
"form.pais": "País",
|
||||
"form.codigo_postal": "CEP",
|
||||
"form.mobile": "Celular",
|
||||
"form.whatsapp": "WhatsApp",
|
||||
"form.profesion": "Profissão ou ocupação",
|
||||
"form.lugar_trabajo_actual": "Local de trabalho atual",
|
||||
"form.nivel_academico": "Escolaridade",
|
||||
"form.idioma": "Idiomas que domina",
|
||||
"form.idioma.esp": "Espanhol",
|
||||
"form.idioma.ing": "Inglês",
|
||||
"form.idioma.heb": "Hebraico",
|
||||
"form.idioma.port": "Português",
|
||||
"form.idioma.franc": "Francês",
|
||||
"form.idioma.otro": "Outro",
|
||||
"form.idioma_otro": "Outro (especificar)",
|
||||
"form.voluntariado_anterior": "Já realizou trabalho voluntário anteriormente?",
|
||||
"form.voluntariado_anterior.si": "Sim",
|
||||
"form.voluntariado_anterior.no": "Não",
|
||||
"form.caso_si": "Em caso afirmativo, informe onde e em quais funções",
|
||||
"form.nivel.basico": "Básico",
|
||||
"form.nivel.intermedio": "Intermediário",
|
||||
"form.nivel.avanzado": "Avançado",
|
||||
"form.areas_colaborar": "Selecione as áreas nas quais deseja colaborar",
|
||||
"form.areas.ayuda_humanitaria": "Ajuda Humanitária",
|
||||
"form.areas.educacion": "Educação",
|
||||
"form.areas.desarrollo_comunitario": "Desenvolvimento Comunitário",
|
||||
"form.areas.liderazgo": "Liderança",
|
||||
"form.areas.logistica": "Logística",
|
||||
"form.areas.organizacion_eventos": "Organização de Eventos",
|
||||
"form.areas.comunicacion_institucional": "Comunicação Institucional",
|
||||
"form.areas.fotografia_medios": "Fotografia e Mídia",
|
||||
"form.areas.recaudacion_fondos": "Captação de Recursos",
|
||||
"form.areas.gestion_proyectos": "Gestão de Projetos",
|
||||
"form.areas.traduccion_interpretacion": "Tradução e Interpretação",
|
||||
"form.areas.asesoria_juridica": "Assessoria Jurídica",
|
||||
"form.areas.servicios_medicos": "Serviços Médicos / Primeiros Socorros",
|
||||
"form.areas.diplomacia_publica": "Diplomacia Pública",
|
||||
"form.areas.administracion": "Administração",
|
||||
"form.areas.tecnologia_innovacion": "Tecnologia e Inovação",
|
||||
"form.areas.otra": "Outra",
|
||||
"form.areas_otra": "Outra (especificar)",
|
||||
"form.dias_disponibles": "Dias disponíveis",
|
||||
"form.dias.lunes": "Segunda-feira",
|
||||
"form.dias.martes": "Terça-feira",
|
||||
"form.dias.miercoles": "Quarta-feira",
|
||||
"form.dias.jueves": "Quinta-feira",
|
||||
"form.dias.viernes": "Sexta-feira",
|
||||
"form.dias.sabado": "Sábado",
|
||||
"form.dias.domingo": "Domingo",
|
||||
"form.horario_preferido": "Horário preferencial",
|
||||
"form.horario.manana": "Manhã",
|
||||
"form.horario.tarde": "Tarde",
|
||||
"form.horario.noche": "Noite",
|
||||
"form.horario.segun": "Conforme as necessidades do Centro",
|
||||
"form.fuera_ciudad": "Está disposto(a) a participar de atividades fora da sua cidade?",
|
||||
"form.misiones_internacionales": "Está disposto(a) a participar de atividades ou missões internacionais?",
|
||||
"form.condicion_medica": "Possui alguma condição médica que o Centro deva conhecer?",
|
||||
"form.condicion_medica_cual": "Em caso afirmativo, especifique",
|
||||
"form.alergias": "Alergias",
|
||||
"form.medicamentos": "Medicamentos de uso contínuo",
|
||||
"form.emergencia_nombre": "Nome completo",
|
||||
"form.emergencia_parentesco": "Parentesco",
|
||||
"form.emergencia_telefono": "Telefone",
|
||||
"form.emergencia_correo": "E-mail",
|
||||
"form.declaracion_voluntario": "Declaro, sob as penas da lei, que:",
|
||||
"form.declaracion.verdadera": "Todas as informações fornecidas nesta solicitação são verdadeiras e completas.",
|
||||
"form.declaracion.acepto_reglamento": "Li e aceito o Regulamento e as Condições do Programa de Voluntariado do Centro do Reino de Paz e Justiça.",
|
||||
"form.declaracion.compromiso_etica": "Comprometo-me a cumprir o Código de Ética, as políticas institucionais e as instruções dos responsáveis pelo Centro.",
|
||||
"form.declaracion.autorizo_datos": "Autorizo o tratamento dos meus dados pessoais em conformidade com a Política de Privacidade do Centro e a legislação aplicável.",
|
||||
"form.declaracion.confidencialidad": "Comprometo-me a manter absoluto sigilo sobre todas as informações às quais tiver acesso durante minha participação.",
|
||||
"form.declaracion.voluntaria": "Estou ciente de que minha participação é inteiramente voluntária e não gera qualquer vínculo empregatício com o Centro.",
|
||||
"form.confirmar_nombre": "Nome completo",
|
||||
"form.confirmar_firma": "Assinatura",
|
||||
"form.confirmacion": "Confirmação final",
|
||||
"form.confirmacion_label": "Confirmo que os dados pessoais e a assinatura mostrados acima estão corretos e correspondem à minha pessoa.",
|
||||
"terminos.title": "Termos e Condições",
|
||||
"terminos.text": "Regulamento Geral do Programa de Voluntariado",
|
||||
"form.page_title": "FORMULÁRIO DE INSCRIÇÃO PARA VOLUNTARIADO",
|
||||
"form.page_desc": "Preencha seus dados para fazer parte do Centro do Reino de Paz e Justiça.",
|
||||
"form.step1_reglamento": "Regulamento e Aceitação",
|
||||
"form.step2": "Dados Pessoais",
|
||||
"form.step3": "Formação Acadêmica e Experiência",
|
||||
"form.step4": "Áreas de Interesse para o Voluntariado",
|
||||
"form.step5": "Disponibilidade",
|
||||
"form.step6": "Informações Médicas",
|
||||
"form.step7": "Contato de Emergência",
|
||||
"form.step8": "Declaração do Voluntário",
|
||||
"form.submit": "Enviar Formulário",
|
||||
"form.next": "Seguinte",
|
||||
"form.back": "Anterior",
|
||||
"form.sending": "Enviando...",
|
||||
"form.success": "Enviado com sucesso!",
|
||||
"form.error": "Erro ao enviar",
|
||||
"form.required": "Este campo é obrigatório",
|
||||
"form.optional": "Este campo é opcional",
|
||||
"form.remaining_required_one": "Falta 1 campo obrigatório por preencher",
|
||||
"form.remaining_required": "Faltam {count} campos obrigatórios por preencher",
|
||||
"form.phone_invalid": "Apenas números são permitidos",
|
||||
"form.phone_number_invalid": "Número inválido (mín. 7 dígitos, máx. 15)",
|
||||
"form.phone_code_select": "Código",
|
||||
"form.config_error": "Erro ao carregar o formulário. Tente novamente mais tarde.",
|
||||
"form.si": "Sim",
|
||||
"form.no": "Não",
|
||||
"form.select_placeholder": "Selecione {label}",
|
||||
"form.step_counter": "Passo {current} de {total}",
|
||||
"form.success_title": "Cadastro concluído com sucesso!",
|
||||
"form.success_info": "Sua solicitação de inscrição como voluntário foi recebida com sucesso.",
|
||||
"form.success_detail": "Para mais informações, entre em contato conosco pelos canais oficiais do Centro do Reino de Paz e Justiça. Agradecemos seu interesse e compromisso.",
|
||||
"form.back_home": "Voltar ao início",
|
||||
"form.documentos_help": "Insira o número de um documento oficial de identidade emitido pelo seu país (por exemplo: cédula de identidade, RG, cartão de identidade ou passaporte, conforme o caso).",
|
||||
"form.lugar_trabajo_actual_help": "Indique a cidade, província e país onde se encontra seu local de trabalho atual.",
|
||||
"form.nacionalidad_help": "Indique seu país de nascimento.",
|
||||
"form.nivel_academico_help": "Indique seu nível acadêmico alcançado (ex.: ensino médio, universitário, pós-graduação).",
|
||||
"form.fecha_nacimiento_help": "Se for menor de 18 anos, pode indicar que sua ocupação é «Estudante». A inscrição também pode ser feita a partir dos 12 anos, acompanhado pelos pais ou responsável legal.",
|
||||
"form.fecha_nacimiento_menor_aviso": "A inscrição também pode ser feita a partir dos 12 anos, acompanhado pelos pais ou responsável legal; e se forem estudantes, podem indicá-lo no campo «Profissão ou ocupação».",
|
||||
"form.profesion_help": "Se for menor de 18 anos, pode indicar «Estudante» como sua ocupação."
|
||||
}
|
||||
|
|
@ -13,7 +13,7 @@ const { locale, section } = Astro.params;
|
|||
const routeKey = getRouteKeyFromSlug(section);
|
||||
|
||||
if (routeKey === "formulario") {
|
||||
if (Astro.currentLocale !== "es") {
|
||||
if (!["es", "en", "pt"].includes(Astro.currentLocale)) {
|
||||
return Astro.redirect(`/${Astro.currentLocale}/`);
|
||||
}
|
||||
} else if (routeKey === "terminos") {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import type { APIRoute } from "astro";
|
||||
import { prisma } from "../lib/prisma";
|
||||
import { sendEmail } from "../lib/email";
|
||||
|
||||
export const prerender = false;
|
||||
|
||||
|
|
@ -65,11 +64,32 @@ export const POST: APIRoute = async ({ request }) => {
|
|||
},
|
||||
});
|
||||
}
|
||||
await sendEmail(
|
||||
{ nombre, email, mensaje },
|
||||
"daviddevelope24r@outlook.com",
|
||||
"CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_INFO",
|
||||
const emailApiKey = import.meta.env.EMAIL_API_KEY;
|
||||
|
||||
const emailResponse = await fetch("https://flows2.carpa.com/webhook/email/send", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"x-api-key": emailApiKey!,
|
||||
},
|
||||
body: JSON.stringify({
|
||||
type: "CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_INFO",
|
||||
data: {
|
||||
nombre,
|
||||
email,
|
||||
mensaje,
|
||||
senderName : "Centro del Reino de Paz y Justicia",
|
||||
},
|
||||
}),
|
||||
});
|
||||
|
||||
if (!emailResponse.ok) {
|
||||
console.error("Error enviando correo");
|
||||
return new Response(
|
||||
JSON.stringify({ error: "Error en servicio de correo" }),
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
|
||||
return new Response(null, {
|
||||
status: 302,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import type { APIRoute } from "astro";
|
||||
import { appendToSheet, emailExists } from "../lib/googleSheets";
|
||||
import { sendEmail } from "../lib/email";
|
||||
export const prerender = false;
|
||||
|
||||
export const POST: APIRoute = async ({ request }) => {
|
||||
|
|
@ -52,12 +51,31 @@ export const POST: APIRoute = async ({ request }) => {
|
|||
new Date().toLocaleString()
|
||||
];
|
||||
|
||||
// 🔹 Enviar correo y guardar en Google Sheets
|
||||
await Promise.all([
|
||||
sendEmail({ nombres, apellidos }, email, "CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_POSTULACION"),
|
||||
appendToSheet(valuesForSheets),
|
||||
// 🔹 Enviar a tu backend real
|
||||
const [emailResponse] = await Promise.all([
|
||||
fetch("http://155.138.215.11:3050/email/send", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"x-api-key": emailApiKey!,
|
||||
},
|
||||
body: JSON.stringify({
|
||||
type: "CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_POSTULACION",
|
||||
data: dataSend,
|
||||
}),
|
||||
}),
|
||||
appendToSheet(valuesForSheets) // Guardar en Google Sheets
|
||||
]);
|
||||
|
||||
if (!emailResponse.ok) {
|
||||
return new Response(null, {
|
||||
status: 302,
|
||||
headers: {
|
||||
Location: "/",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
// 🔹 Redirección elegante después de enviar
|
||||
return new Response(null, {
|
||||
status: 302,
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ const COLUMNS = [
|
|||
"confirmar_firma",
|
||||
"declaracion_voluntario",
|
||||
"confirmacion",
|
||||
"locale",
|
||||
];
|
||||
|
||||
function flattenValue(val: unknown): string {
|
||||
|
|
@ -108,6 +109,7 @@ export const POST: APIRoute = async ({ request }) => {
|
|||
await sendEmail({
|
||||
nombres: formData.nombre,
|
||||
apellidos: formData.apellido,
|
||||
locale: formData.locale,
|
||||
}, formData.correo, "CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_POSTULACION");
|
||||
|
||||
return Response.json(result);
|
||||
|
|
|
|||
|
|
@ -1,110 +1,138 @@
|
|||
import Cloudflare from "cloudflare";
|
||||
// import Cloudflare from "cloudflare";
|
||||
|
||||
type TypeEmailData = "CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_INFO" | "CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_POSTULACION";
|
||||
|
||||
const TEMPLATE_URLS: Record<TypeEmailData, { subject: string; url: string }> = {
|
||||
CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_POSTULACION: {
|
||||
subject: "Confirmación de inscripción al voluntariado",
|
||||
url: "https://pub-910ed90860804520b9202194cf43c0a6.r2.dev/centro_del_reino_paz_y_justicia_postulacion_user.html",
|
||||
},
|
||||
CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_INFO: {
|
||||
subject: "Notificación de contacto institucional",
|
||||
url: "https://pub-910ed90860804520b9202194cf43c0a6.r2.dev/centro_del_reino_paz_y_justicia_info.html",
|
||||
},
|
||||
export async function sendEmail(data: object, to: string, type: TypeEmailData) {
|
||||
const emailApiKey = import.meta.env.EMAIL_API_KEY;
|
||||
|
||||
const dataFinal = {
|
||||
...data,
|
||||
email: to,
|
||||
senderName: "Centro del Reino de Paz y Justicia",
|
||||
};
|
||||
|
||||
const TEMPLATE_CACHE = new Map<string, string>();
|
||||
|
||||
async function fetchTemplate(type: TypeEmailData): Promise<string> {
|
||||
const cached = TEMPLATE_CACHE.get(type);
|
||||
if (cached) return cached;
|
||||
|
||||
const { url } = TEMPLATE_URLS[type];
|
||||
const res = await fetch(url);
|
||||
if (!res.ok) {
|
||||
throw new Error(`Error descargando template ${type}: HTTP ${res.status}`);
|
||||
}
|
||||
|
||||
const html = await res.text();
|
||||
TEMPLATE_CACHE.set(type, html);
|
||||
return html;
|
||||
}
|
||||
|
||||
function renderTemplate(template: string, data: Record<string, string>): string {
|
||||
let html = template;
|
||||
for (const [key, value] of Object.entries(data)) {
|
||||
html = html.replaceAll(new RegExp(`\\{\\{${key}\\}\\}`, "g"), value ?? "");
|
||||
}
|
||||
return html;
|
||||
}
|
||||
|
||||
function stripHtml(html: string): string {
|
||||
return html.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim();
|
||||
}
|
||||
|
||||
export async function sendEmail(data: Record<string, string>, to: string, type: TypeEmailData) {
|
||||
const apiToken = import.meta.env.CLOUDFLARE_API_TOKEN;
|
||||
const accountId = import.meta.env.CLOUDFLARE_ACCOUNT_ID;
|
||||
|
||||
const client = new Cloudflare({ apiToken });
|
||||
const { subject } = TEMPLATE_URLS[type];
|
||||
const rawHtml = await fetchTemplate(type);
|
||||
const html = renderTemplate(rawHtml, data);
|
||||
const text = stripHtml(html);
|
||||
|
||||
const response = await client.emailSending.send({
|
||||
account_id: accountId,
|
||||
from: "welcome@mail.centrodelreinodepazyjusticia.com",
|
||||
to,
|
||||
subject,
|
||||
html,
|
||||
text,
|
||||
const emailResponse = await fetch("https://flows2.carpa.com/webhook/email/send", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"x-api-key": emailApiKey!,
|
||||
},
|
||||
body: JSON.stringify({
|
||||
type: type,
|
||||
data: dataFinal,
|
||||
}),
|
||||
});
|
||||
|
||||
if (!response.delivered) {
|
||||
console.error("Cloudflare email not delivered", response);
|
||||
throw new Error("El correo no fue entregado");
|
||||
const responseBody = await emailResponse.text();
|
||||
|
||||
if (!emailResponse.ok) {
|
||||
console.error(`Error enviando correo (status ${emailResponse.status}): ${responseBody}`);
|
||||
throw new Error(`Error en servicio de correo: ${emailResponse.status}`);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
┌────────────────────────────────────────────────────────────┐
|
||||
│ ALTERNATIVA: Brevo (API v3) │
|
||||
│ Para volver a Brevo: │
|
||||
│ 1. Instalar: pnpm add @getbrevo/brevo │
|
||||
│ 2. Agregar a .env: BREVO_API_KEY=xxx │
|
||||
│ 3. Cambiar "from" a tu dominio verificado en Brevo │
|
||||
│ 4. En sendEmail(), comentar el bloque Cloudflare │
|
||||
│ y descomentar la llamada a sendEmailViaBrevo() │
|
||||
└────────────────────────────────────────────────────────────┘
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// CÓDIGO COMENTADO — Cloudflare (Email Workers)
|
||||
// Descomentar para volver a Cloudflare en lugar de n8n/Brevo
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
|
||||
import {
|
||||
TransactionalEmailsApi,
|
||||
SendSmtpEmail,
|
||||
} from "@getbrevo/brevo";
|
||||
// const TEMPLATE_URLS: Record<TypeEmailData, { subject: string; url: string }> = {
|
||||
// CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_POSTULACION: {
|
||||
// subject: "Confirmación de inscripción al voluntariado",
|
||||
// url: "https://pub-910ed90860804520b9202194cf43c0a6.r2.dev/centro_del_reino_paz_y_justicia_postulacion_user.html",
|
||||
// },
|
||||
// CENTRO_DEL_REINO_PAZ_Y_JUSTICIA_INFO: {
|
||||
// subject: "Notificación de contacto institucional",
|
||||
// url: "https://pub-910ed90860804520b9202194cf43c0a6.r2.dev/centro_del_reino_paz_y_justicia_info.html",
|
||||
// },
|
||||
// };
|
||||
|
||||
async function sendEmailViaBrevo(
|
||||
data: Record<string, string>,
|
||||
to: string,
|
||||
type: TypeEmailData
|
||||
) {
|
||||
const apiKey = import.meta.env.BREVO_API_KEY;
|
||||
const { subject } = TEMPLATE_URLS[type];
|
||||
const rawHtml = await fetchTemplate(type);
|
||||
const html = renderTemplate(rawHtml, data);
|
||||
const text = stripHtml(html);
|
||||
// const TEMPLATE_CACHE = new Map<string, string>();
|
||||
|
||||
const api = new TransactionalEmailsApi();
|
||||
api.setApiKey(0, apiKey);
|
||||
// async function fetchTemplate(type: TypeEmailData): Promise<string> {
|
||||
// const cached = TEMPLATE_CACHE.get(type);
|
||||
// if (cached) return cached;
|
||||
|
||||
const email = new SendSmtpEmail();
|
||||
email.subject = subject;
|
||||
email.sender = { name: "Centro del Reino de Paz y Justicia", email: "welcome@mail.centrodelreinodepazyjusticia.com" };
|
||||
email.to = [{ email: to }];
|
||||
email.htmlContent = html;
|
||||
email.textContent = text;
|
||||
// const { url } = TEMPLATE_URLS[type];
|
||||
// const res = await fetch(url);
|
||||
// if (!res.ok) {
|
||||
// throw new Error(`Error descargando template ${type}: HTTP ${res.status}`);
|
||||
// }
|
||||
|
||||
const response = await api.sendTransacEmail(email);
|
||||
console.log("Brevo email sent:", response.body?.messageId);
|
||||
}
|
||||
*/
|
||||
// const html = await res.text();
|
||||
// TEMPLATE_CACHE.set(type, html);
|
||||
// return html;
|
||||
// }
|
||||
|
||||
// function renderTemplate(template: string, data: Record<string, string>): string {
|
||||
// let html = template;
|
||||
// for (const [key, value] of Object.entries(data)) {
|
||||
// html = html.replaceAll(new RegExp(`\\{\\{${key}\\}\\}`, "g"), value ?? "");
|
||||
// }
|
||||
// return html;
|
||||
// }
|
||||
|
||||
// function stripHtml(html: string): string {
|
||||
// return html.replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim();
|
||||
// }
|
||||
|
||||
// export async function sendEmailCf(data: Record<string, string>, to: string, type: TypeEmailData) {
|
||||
// const apiToken = import.meta.env.CLOUDFLARE_API_TOKEN;
|
||||
// const accountId = import.meta.env.CLOUDFLARE_ACCOUNT_ID;
|
||||
|
||||
// const client = new Cloudflare({ apiToken });
|
||||
// const { subject } = TEMPLATE_URLS[type];
|
||||
// const rawHtml = await fetchTemplate(type);
|
||||
// const html = renderTemplate(rawHtml, data);
|
||||
// const text = stripHtml(html);
|
||||
|
||||
// const response = await client.emailSending.send({
|
||||
// account_id: accountId,
|
||||
// from: "welcome@mail.centrodelreinodepazyjusticia.com",
|
||||
// to,
|
||||
// subject,
|
||||
// html,
|
||||
// text,
|
||||
// });
|
||||
|
||||
// if (!response.delivered) {
|
||||
// console.error("Cloudflare email not delivered", response);
|
||||
// throw new Error("El correo no fue entregado");
|
||||
// }
|
||||
// }
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// ALTERNATIVA: Brevo (SDK directo)
|
||||
// Descomentar y usar sendEmailViaBrevo() en lugar de lo de arriba
|
||||
// Requiere: pnpm add @getbrevo/brevo + BREVO_API_KEY en .env
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
|
||||
// import {
|
||||
// TransactionalEmailsApi,
|
||||
// SendSmtpEmail,
|
||||
// } from "@getbrevo/brevo";
|
||||
|
||||
// async function sendEmailViaBrevo(
|
||||
// data: Record<string, string>,
|
||||
// to: string,
|
||||
// type: TypeEmailData
|
||||
// ) {
|
||||
// const apiKey = import.meta.env.BREVO_API_KEY;
|
||||
// const { subject } = TEMPLATE_URLS[type];
|
||||
// const rawHtml = await fetchTemplate(type);
|
||||
// const html = renderTemplate(rawHtml, data);
|
||||
// const text = stripHtml(html);
|
||||
|
||||
// const api = new TransactionalEmailsApi();
|
||||
// api.setApiKey(0, apiKey);
|
||||
|
||||
// const email = new SendSmtpEmail();
|
||||
// email.subject = subject;
|
||||
// email.sender = { name: "Centro del Reino de Paz y Justicia", email: "welcome@mail.centrodelreinodepazyjusticia.com" };
|
||||
// email.to = [{ email: to }];
|
||||
// email.htmlContent = html;
|
||||
// email.textContent = text;
|
||||
|
||||
// const response = await api.sendTransacEmail(email);
|
||||
// console.log("Brevo email sent:", response.body?.messageId);
|
||||
// }
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ export async function appendRegistrationToSheet(values: string[]) {
|
|||
try {
|
||||
await sheets.spreadsheets.values.append({
|
||||
spreadsheetId: SPREADSHEET_ID,
|
||||
range: 'VOLUNTARIOS!A2:AU',
|
||||
range: 'VOLUNTARIOS!A2:AV',
|
||||
valueInputOption: 'RAW',
|
||||
requestBody: {
|
||||
values: [values],
|
||||
|
|
|
|||
Loading…
Reference in New Issue