i18n folder in module useful for translation purpose in Magento 2 for multiple languages.
You can add a translated CSV file at the module or theme level under the i18n folder. The website has multiple languages and you want to translate the text to a specific locale of the store, you need to create a CSV file for respective language locale like en_US.csv, fr_FR.csv file.
i18n stand for Internationalization. i18n is a short form of the entire word. taken first character i and last character n from the Internationalization and 18 character is the middle of i and n.
You can retrieve the path of the i18n Directory of a module using the Magento\Framework\Module\Dir class.
Dir.php class contains the directory path for the separate folder,
const MODULE_ETC_DIR = 'etc'; const MODULE_I18N_DIR = 'i18n'; const MODULE_VIEW_DIR = 'view'; const MODULE_CONTROLLER_DIR = 'Controller'; const MODULE_SETUP_DIR = 'Setup';
Let’s look a simple example for getting i18n file path,
<?php namespace Jesadiya\I18nPath\Model; use Magento\Framework\Module\Dir; class GetI18nPath { /** * @var Dir */ private $moduleReader; public function __construct( LoggerInterface $logger, Dir $moduleReader ) { $this->moduleReader = $moduleReader; } /** * Get i18n directory full path from the module */ public function getI18nPath() { $dirPath = $this->moduleReader->getDir( 'Jesadiya_Modulename', Dir::MODULE_I18N_DIR ); return $dirPath; } }
Call function,
echo $this->getI18nPath();
OutPut:
/var/www/html/magento234/app/code/Jesadiya/Modulename/i18n
You can also get the full path of csv file by appending CSV file name in the above module.