Property definitions

nitc :: i18n_phase $ ANode :: accept_string_finder
	private fun accept_string_finder(v: StringFinder) do end
src/frontend/i18n_phase.nit:127,2--57

nitc :: i18n_phase $ ASuperstringExpr :: accept_string_finder
	redef fun accept_string_finder(v) do
		var fmt = ""
		var exprs = new Array[AExpr]
		for i in n_exprs do
			if i isa AStartStringExpr or i isa AEndStringExpr or i isa AMidStringExpr then
				assert i isa AStringFormExpr
				var str = i.value
				fmt += str.replace("%", "%%")
			else
				fmt += "%"
				exprs.push i
				fmt += (exprs.length-1).to_s
			end
		end
		fmt = fmt.escape_to_gettext
		v.add_string(fmt, location)
		var code = "\"{fmt}\".get_translation(\"{v.domain}\", \"{v.languages_location}\").format()"
		var parse = v.toolcontext.parse_expr(code)
		if not parse isa ACallExpr then
			v.toolcontext.error(location, "Fatal error in i18n annotation, the parsed superstring could not be generated properly")
			return
		end
		var parse_exprs = parse.n_args.n_exprs
		parse_exprs.add_all exprs
		replace_with parse
	end
src/frontend/i18n_phase.nit:143,2--168,4

nitc :: i18n_phase $ AStringExpr :: accept_string_finder
	redef fun accept_string_finder(v) do
		var str = value.escape_to_gettext
		var code = "\"{str}\".get_translation(\"{v.domain}\", \"{v.languages_location}\")"
		var parse = v.toolcontext.parse_expr(code)
		replace_with(parse)
		v.add_string(str, location)
	end
src/frontend/i18n_phase.nit:132,2--138,4