Ethereum Localized Messaging
A method of converting machine codes to human-readable text in any language and phrasing.
An Implementation of EIP-1444
EIP-1444: an on-chain system for providing user feedback by converting machine-efficient codes into human-readable strings in any language or phrasing. The system does not impose a list of languages, but rather lets users create, share, and use the localized text of their choice.
Installation
npm install ethereum-localized-messaging
Usage
Implement your own localizations:
pragma solidity ^0.5.0; import "/ethereum-localized-messaging/contracts/Localization.sol"; contract PirateLocalization is Localization { constructor() public { set(hex"00", "Nay!"); set(hex"01", "Aye!"); set(hex"02", "Arr jolly crew have begun"); set(hex"03", "Awaitin'"); set(hex"04", "Ye need ta do something"); set(hex"05", "Has walked thar plank an expired"); set(hex"0F", "Only this here metadata"); set(hex"10", "Ye can nay do that"); set(hex"11", "Ye be permitted"); set(hex"12", "Ye have requested thar go ahead"); set(hex"13", "Yer waitin' fer the go ahead"); set(hex"14", "Thar awaiting yer signal"); }}
pragma solidity ^0.5.0; import "/ethereum-localized-messaging/contracts/LocalizationPreferences.sol";import "./PirateLocalization.sol"; contract MyContract { LocalizationPreferences prefs; constructor() public { PirateLocalization pirateLocalization = new PirateLocalization(); prefs = new LocalizationPreferences(pirateLocalization); } function localize(bytes32 _code) view public returns (bool _found, string _msg) { return prefs.textFor(_code); }}
Contributing
Prerequisites
- NodeJS, v10.11.0 or higher
- Truffle, v5.0.0-beta.0
Quick Start
npm install
truffle compile
npm run coverage