Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions client/src/containers/Header.js
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ class Header extends React.Component {
tr: strings.turkish,
uk: strings.ukrainian,
ko: strings.korean,
vi: strings.vietnamese,
};

const ddOpen = Boolean(this.state.multiDDOpen);
Expand Down
3 changes: 2 additions & 1 deletion client/src/gamedata/ar/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"chinese_traditional": "正體中文",
"french": "Français",
"russian": "Русский",
"vietnamese": "tiếng Việt",
"korean": "한국어",
"playNow": "العب الان!",
"toggleNavigation": "تصفح",
Expand All @@ -32,9 +33,9 @@
"accountNotConnectedMessage": "لبدء مغامرتك، قم بتوصيل محفظة MetaMask الخاصة بك! تتفاعل لعبتنا بشكل مباشر مع عقود Ethernaut على السلسلة، مما يعني أن أفعالك في اللعبة مسجلة على blockchain. من خلال ربط حساب MetaMask الخاص بك، يمكنك التفاعل بأمان مع هذه العقود الذكية، مما يسمح لك بحل التحديات والتقدم في اللعبة.",
"connectAccount": "يتصل",
"deployMessageTitle": "لم يتم نشر اللعبة",
"deployMessage": "تدُعم اللُعبة حاليًا هذه الشبكات فقط:",
"deprecatedNetwork": "شبكة عفا عليها الزمن",
"networkBeingDeprecated": "يتم إهمال الشبكة",
"deployMessage": "تدُعم اللُعبة حاليًا هذه الشبكات فقط:",
"deployConfirmation": "هل تريد نشر العقود على هذه الشبكة أم التبديل إلى شبكة Sepolia",
"deployNote": "ملاحظة: إذا قمت بنشر جميع المستويات ، فسنرشدك إلى إرسال اللعبة المنشورة بالكامل على هذه الشبكة.",
"deployGame": "نشر اللعبة",
Expand Down
1 change: 1 addition & 0 deletions client/src/gamedata/en/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"chinese_traditional": "正體中文",
"french": "Français",
"russian": "Русский",
"vietnamese": "tiếng Việt",
"korean": "한국어",
"playNow": "Play now!",
"toggleNavigation": "Toggle navigation",
Expand Down
23 changes: 12 additions & 11 deletions client/src/gamedata/es/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"chinese_traditional": "正體中文",
"french": "Français",
"russian": "Русский",
"vietnamese": "tiếng Việt",
"korean": "한국어",
"playNow": "Juega ahora!",
"toggleNavigation": "Despliega la navegación",
Expand Down Expand Up @@ -75,15 +76,15 @@
"levelAddressMessage": "Dirección del nivel",
"instanceAddressMessage": "Dirección de la instancia",
"playerAddressMessage": "Dirección del jugador",
"selectedNetworkMessage": "Current network: ",
"selectedNetworkMessage": "Red actual: ",
"ethernautAddressMessage": "Dirección de Ethernaut",
"noLevelsDataMessage": "No se encuentran los datos de los niveles",
"ethernautNotFoundMessage": "El contrato de Ethernaut no se ha encontrado en la red seleccionada. Por favor averigua que 1) Estás usando MetaMask, 2) Estas en una red soportada, 3) Que MetaMask esté desbloqueado, 4 opcional) Puedes habilitar y setear en ON el modo privado (desactivado por defecto) en los ajustes si no quieres que tus informaciones sean automáticamente expuestas. 5 opcional) Si el modo privado esta habilitado tienes que autorizar MetaMask a utilizar esta página web. 6) Actualiza la página.",
"requestingNewInstanceMessage": "Obteniendo nueva instancia del nivel...",
"unableToRetrieveLevelMessage": "No se puede obtener la instancia del nivel! Por favor, controle la cantidad de gas proporcionada e inténtelo de nuevo.",
"transactionNoLogsMessage": "La transacción no contiene logs",
"noPlayerAddressMessage": "Ninguna dirección encontrada para el jugador! Asegúrate de que 1) Tengas instalada la extensión MetaMask para tu navegador y 2) Que esté desbloqueada. 3 opcional) Puedes habilitar y setear en ON el modo privado (desactivado por defecto) en los ajustes si no quieres que tus informaciones sean automáticamente expuestas. 4 opcional) Si el modo privado esta habilitado tienes que autorizar MetaMask a utilizar esta página web. 5) Actualiza la página.",
"noEthersMessage": "Yikes, you have no ether! Get some at valid faucet for your chosen network",
"noEthersMessage": "Vaya, no tienes ether. Consigue algo en un faucet válido para la red seleccionada",
"submitLevelMessage": "Enviando la instancia del nivel",
"wellDoneMessage": "Bien hecho",
"completedLevelMessage": "Has completado ese nivel!!!",
Expand All @@ -105,16 +106,16 @@
"helperFromWei": "convierte wei en ether",
"levelNotTranslated": "Este nivel no está traducido o la traducción es incompleta. ",
"contributeTranslation": "Haz clic aquí para contribuir en mejorar la traducción",
"usingConsole": "Most game interaction is via the browser's console: `Dev Tools -> Console`. Open the console and enter the command: \n\n`help()`\n\n to see a list of objects and functions injected by the game to the console. Since most interactions are asynchronous, we recommend using Chrome v62 which enables the `async`/`await` keywords in the console, so instead of writting:\n\n`getBalance(player)> PROMISE`\n\nand opening the promise. With await/async, you can write:\n\n`await getBalance(player) > '1.11002387' `\n\n",
"gameMechanics": "The game uses the main contract `Ethernaut.sol` to manage player progress and delegate interaction with `Level.sol` implementations. Each level contract emits instances for players to manipulate, break, destroy, fix, etc. The player requests an instance, manipulates it and returns it to the game for evaluation of level completion.\n\n Both requesting instances and submitting instances back to the game are done with the buttons in the user interface in each level. When this app retrieves an instance from `Ethernaut.sol`, it wraps it in a `TruffleContract` object and exposes it in the browser's console. See the first level for a full tutorial on how to play the game.",
"beyondConsole": "Some levels will require working outside of the browser console. That is, writing solidity code and deploying it in the network to attack the level's instance contract with another contract. This can be done in multiple ways, for example: \n\n1) Use Remix to write the code and deploy it in the corresponding network See [Remix Solidity IDE](https://remix.ethereum.org/).\n\n 2) Setup a local truffle project to develop and deploy the attack contracts. See [Truffle Framework](https://trufflesuite.com/).",
"troubleshooting": "Sometimes \n\n(a) the app state or (b) the MetaMask plugin state \n\ncan become a bit messed up, specially after switching networks, unlocking, etc. If what you're seeing doesn't make much sense, try refreshing the app, hard-refreshing it, disabling and re-enabling your metamask plugin or even restarting your browser. \n\nIf you find issues, please let us know at ethernaut@zeppelin.solutions",
"poweredBy": "powered by ",
"usingConsole": "La mayoría de la interacción del juego se realiza mediante la consola del navegador: `Dev Tools -> Console`. Abre la consola e ingresa el comando:\n\n`help()`\n\n para ver una lista de objetos y funciones que el juego inyecta en la consola. Dado que la mayoría de las interacciones son asíncronas, recomendamos usar Chrome v62 o superior que habilita las palabras clave `async`/`await` en la consola, así en lugar de escribir:\n\n`getBalance(player) > PROMISE`\n\n y abrir la promesa. Con async/await puedes escribir:\n\n`await getBalance(player) > '1.11002387' `\n\n",
"gameMechanics": "El juego usa el contrato principal `Ethernaut.sol` para gestionar el progreso de los jugadores y delegar la interacción con las implementaciones de `Level.sol`. Cada contrato de nivel emite instancias para que los jugadores las manipulen, rompan, destruyan, arreglen, etc. El jugador solicita una instancia, la manipula y la devuelve al juego para evaluar la finalización del nivel.\n\n Tanto la solicitud de instancias como el envío de instancias de vuelta al juego se realizan con los botones en la interfaz de usuario de cada nivel. Cuando esta aplicación obtiene una instancia de `Ethernaut.sol`, la envuelve en un objeto `TruffleContract` y la expone en la consola del navegador. Consulta el primer nivel para un tutorial completo sobre cómo jugar.",
"beyondConsole": "Algunos niveles requerirán trabajar fuera de la consola del navegador. Es decir, escribir código Solidity y desplegarlo en la red para atacar el contrato de la instancia del nivel con otro contrato. Esto puede hacerse de varias maneras, por ejemplo: \n\n1) Usa Remix para escribir el código y desplegarlo en la red correspondiente. Ver [Remix Solidity IDE](https://remix.ethereum.org/).\n\n2) Configura un proyecto local de Truffle para desarrollar y desplegar los contratos de ataque. Ver [Truffle Framework](https://trufflesuite.com/).",
"troubleshooting": "A veces \n\n(a) el estado de la aplicación o (b) el estado del plugin MetaMask \n\npueden quedar un poco desordenados, especialmente después de cambiar de red, desbloquear, etc. Si lo que estás viendo no tiene mucho sentido, intenta recargar la aplicación, hacer una recarga forzada, desactivar y volver a activar la extensión de MetaMask o incluso reiniciar el navegador. \n\nSi encuentras problemas, avísanos en ethernaut@zeppelin.solutions",
"poweredBy": "impulsado por ",
"setupMetamask": "Si aún no lo tienes, instala la [extensión del navegador MetaMask](https://metamask.io/). \n\nConfigura la billetera de la extensión y usa el selector de red para apuntar a tu red preferida en la parte superior izquierda de la interfaz de la extensión. De forma alternativa, puedes usar el boton en la interfaz de usuario para cambiar entre diferentes redes. Si seleccionas una red no soportada, el juego te notificarà y llevarà a la red de test por defecto de Sepolia. \n\nUna vez hecho, vuelve aqui y vuelve a carga la pagin",
"FifthyPercentMessage": "Awesome work! You’re halfway through Ethernaut and getting pretty good at breaking things. Working as a Blockchain Security Researcher at OpenZeppelin could be fun... https://grnh.se/fdbf1c043us",
"SeventyFivePercentMessage": "75%: Good work anon…you’re deep down the rabbit hole now....who knows where it will take you... https://grnh.se/d4a786e43us",
"NinetyPercentMessage": "90%: You’re almost there anon! Just a few more challenges left until you complete Ethernaut! Have you considered a career in Blockchain Security?https://grnh.se/cfcca8c83us",
"HundredPercentMessage": "100%: Congratulations! Your journey down the web3 rabbit hole is impressive and should be celebrated! You now have the skills to break smart contracts! What’s next from here anon? Apply to be a Blockchain Security Researcher at OpenZeppelin, and contribute to securing the top protocols in web3! https://grnh.se/26c05aac3us",
"FifthyPercentMessage": "¡Excelente trabajo! Vas a mitad de camino en Ethernaut y te estás volviendo bastante bueno rompiendo cosas. Trabajar como Blockchain Security Researcher en OpenZeppelin podría ser divertido... https://grnh.se/fdbf1c043us",
"SeventyFivePercentMessage": "75%: Buen trabajo anon... ya estás muy dentro de la madriguera del conejo... quién sabe a dónde te llevará... https://grnh.se/d4a786e43us",
"NinetyPercentMessage": "90%: ¡Ya casi llegas anon! Solo unos pocos desafíos más hasta completar Ethernaut. ¿Has considerado una carrera en Seguridad Blockchain? https://grnh.se/cfcca8c83us",
"HundredPercentMessage": "100%: ¡Felicidades! Tu viaje por la madriguera de web3 es impresionante y merece celebrarse. ¡Ahora tienes las habilidades para romper smart contracts! ¿Qué sigue desde aquí anon? Postula para ser Blockchain Security Researcher en OpenZeppelin y contribuye a asegurar los principales protocolos en web3. https://grnh.se/26c05aac3us",
"Menu": "Menú",
"Networks": "Redes",
"Languages": "Idiomas",
Expand Down
1 change: 1 addition & 0 deletions client/src/gamedata/fr/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"chinese_traditional": "正體中文",
"french": "Français",
"russian": "Русский",
"vietnamese": "tiếng Việt",
"korean": "한국어",
"playNow": "Jouer maintenant!",
"toggleNavigation": "Basculer la navigation",
Expand Down
3 changes: 2 additions & 1 deletion client/src/gamedata/ja/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"chinese_traditional": "正體中文",
"french": "Français",
"russian": "Русский",
"vietnamese": "tiếng Việt",
"korean": "한국어",
"playNow": "プレイ!",
"toggleNavigation": "トグルナビゲーション",
Expand All @@ -32,9 +33,9 @@
"accountNotConnectedMessage": "冒険を始めるには、MetaMask ウォレットを接続してください。私たちのゲームは Ethernaut オンチェーン コントラクトと直接やり取りします。つまり、ゲーム内でのアクションはブロックチェーンに記録されます。MetaMask アカウントをリンクすることで、これらのスマート コントラクトに安全に関与し、課題を解決してゲームを進めることができます。",
"connectAccount": "接続する",
"deployMessageTitle": "ゲームが展開されていません",
"deployMessage": "現在、ゲームはこれらのネットワークのみをサポートしています:",
"deprecatedNetwork": "ネットワークは放棄されています",
"networkBeingDeprecated": "将来的には、ネットワークは使用できなくなります。",
"deployMessage": "現在、ゲームはこれらのネットワークのみをサポートしています:",
"deployConfirmation": "コントラクトをこのネットワークに展開しますか、それとも Sepolia ネットワークに切り替えますか?",
"deployNote": "注: すべてのレベルを展開する場合は、展開されたゲーム全体をこのネットワークに送信するように案内されます。",
"deployGame": "ゲームを展開する",
Expand Down
5 changes: 3 additions & 2 deletions client/src/gamedata/ko/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"chinese_traditional": "正體中文",
"french": "Français",
"russian": "Русский",
"vietnamese": "tiếng Việt",
"korean": "한국어",
"playNow": "지금 플레이!",
"toggleNavigation": "내비게이션 전환",
Expand All @@ -31,10 +32,10 @@
"accountNotConnectedTitle": "MetaMask 계정 연결되지 않음",
"accountNotConnectedMessage": "모험을 시작하려면 MetaMask 지갑을 연결하세요! 게임은 Ethernaut의 온체인 계약과 직접 상호작용하며, 게임 내에서의 모든 행동은 블록체인에 기록됩니다. MetaMask 계정을 연결하면 이러한 스마트 계약과 안전하게 상호작용할 수 있습니다.",
"connectAccount": "연결",
"deployMessageTitle": "게임이 배포되지 않음",
"deployMessage": "현재 게임은 다음 네트워크만 지원합니다:",
"deprecatedNetwork": "네트워크가 더 이상 지원되지 않음",
"networkBeingDeprecated": "네트워크가 더 이상 지원되지 않음",
"deployMessage": "현재 게임은 다음 네트워크만 지원합니다:",
"deployMessageTitle": "게임이 배포되지 않음",
"deployConfirmation": "이 네트워크에 계약을 배포하시겠습니까, 아니면 Sepolia 네트워크로 전환하시겠습니까?",
"deployNote": "참고: 모든 레벨을 배포하면, 우리는 이 네트워크에서 전체 게임을 제출할 수 있도록 안내할 것입니다.",
"deployGame": "게임 배포",
Expand Down
1 change: 1 addition & 0 deletions client/src/gamedata/pt_br/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"chinese_traditional": "正體中文",
"french": "Français",
"russian": "Русский",
"vietnamese": "tiếng Việt",
"korean": "한국어",
"playNow": "Jogue agora!",
"toggleNavigation": "Exibir a navegação",
Expand Down
1 change: 1 addition & 0 deletions client/src/gamedata/ru/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"chinese_traditional": "正體中文",
"french": "Français",
"russian": "Русский",
"vietnamese": "tiếng Việt",
"korean": "한국어",
"playNow": "Играть!",
"toggleNavigation": "Показать или скрыть панель навигации",
Expand Down
1 change: 1 addition & 0 deletions client/src/gamedata/tr/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"chinese_traditional": "正體中文",
"french": "Français",
"russian": "Русский",
"vietnamese": "tiếng Việt",
"korean": "한국어",
"playNow": "Şimdi oyna!",
"toggleNavigation": "Menüyü Aç/Kapat",
Expand Down
9 changes: 9 additions & 0 deletions client/src/gamedata/uk/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"ethernaut": "Ethernaut",
"title": "Ethernaut",
"hiring": "Ми наймаємо",
"ctfRegister": "Register now!",
"ctfInfo": "<strong>We are hosting Ethernaut CTF:</strong> A 48-hour capture the flag event with prizes and blockchain challenges, starting 16/03.",
"info": "<h2>Ethernaut це Web3/Solidity варгейм на базі Ethereum Virtual Machine, натхненний <a href='https://overthewire.org' target='_blank' rel='noopener noreferrer'>overthewire.org</a>. Кожен рівень є смарт-контрактом, який потрібно 'зламати'. Вихідний код гри повністю відкритий, а всі рівні створені іншими гравцями. У тебе є цікава ідея для нового рівня? <a href='https://github.com/OpenZeppelin/ethernaut'><button>Ласкаво просимо</button></a></h2>",
"home": "Назад",
"help": "Допомога",
Expand All @@ -19,19 +21,26 @@
"chinese_traditional": "正體中文",
"french": "Français",
"russian": "Русский",
"vietnamese": "tiếng Việt",
"korean": "한국어",
"playNow": "Грати!",
"toggleNavigation": "Показати або приховати панель навігації",
"levelCompleted": "Рівень пройдено!",
"sources": "Вихідний код",
"submitInstance": "Надіслати інстанс на перевірку",
"getNewInstance": "Створити новий інстанс",
"accountNotConnectedTitle": "Обліковий запис MetaMask не підключений",
"accountNotConnectedMessage": "Щоб розпочати свою пригоду, підключіть свій гаманець MetaMask! Наша гра взаємодіє безпосередньо з ончейн‑контрактами Ethernaut, тож ваші дії в грі записуються в блокчейн. Підключивши свій обліковий запис MetaMask, ви зможете безпечно взаємодіяти з цими смарт‑контрактами, розв’язувати завдання та просуватися у грі.",
"connectAccount": "Підключити",
"deployMessageTitle": "Гра не розгорнута",
"deprecatedNetwork": "Мережа застаріла",
"networkBeingDeprecated": "Мережа позначена як застаріла",
"deployMessage": "На даний момент гра підтримує тільки ці мережі:",
"deployConfirmation": "Ви хочете розгорнути контракти в цій мережі або переключитись на мережу Sepolia?",
"deployNote": "Примітка. Якщо ви розгорнете всі рівні, ми порадимо вам відправити всю розгорнуту гру в цю мережу.",
"deployGame": "Розгорнути гру",
"switchToSepolia": "Переключитись на Sepolia",
"continueAnyway": "Продовжити все одно",
"deployLevel": "Рівень розгортання",
"helperDeployAllContracts": "Розгорніть всі залишені контракти в поточній мережі.",
"confirmMainnetDeploy": "Ви перебуваєте в основній мережі, гра не має грошової вартості, вам не слід розгортати її в цій мережі.",
Expand Down
7 changes: 7 additions & 0 deletions client/src/gamedata/vi/descriptions/levels/aliencodex.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Bạn đã phát hiện ra một hợp đồng Alien. Hãy chiếm quyền sở hữu để hoàn thành cấp độ này.

&nbsp;
Những điều có thể hữu ích
* Hiểu cách lưu trữ mảng hoạt động
* Hiểu [đặc tả ABI](https://solidity.readthedocs.io/en/v0.4.21/abi-spec.html)
* Sử dụng một cách tiếp cận rất `gian lận`
Loading
Loading