42 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   lib,
 | |
|   config,
 | |
|   ...
 | |
| }: {
 | |
|   options = {
 | |
|     i18n = {
 | |
|       defaultLocale = lib.mkOption {
 | |
|         type = lib.types.str;
 | |
|         default = "en_US.UTF-8";
 | |
|         example = "nl_NL.UTF-8";
 | |
|         description = ''
 | |
|           The default locale.  It determines the language for program
 | |
|           messages, the format for dates and times, sort order, and so on.
 | |
|           It also determines the character set, such as UTF-8.
 | |
|         '';
 | |
|       };
 | |
| 
 | |
|       extraLocaleSettings = lib.mkOption {
 | |
|         type = lib.types.attrsOf lib.types.str;
 | |
|         default = {};
 | |
|         example = {
 | |
|           LC_MESSAGES = "en_US.UTF-8";
 | |
|           LC_TIME = "de_DE.UTF-8";
 | |
|         };
 | |
|         description = ''
 | |
|           A set of additional system-wide locale settings other than
 | |
|           `LANG` which can be configured with
 | |
|           {option}`i18n.defaultLocale`.
 | |
|         '';
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   config = {
 | |
|     home.sessionVariables =
 | |
|       {
 | |
|         LANG = config.i18n.defaultLocale;
 | |
|       }
 | |
|       // config.i18n.extraLocaleSettings;
 | |
|   };
 | |
| }
 |