strgen: Allow inserting strings before as well as after
Use for viewport town label strings
This commit is contained in:
@@ -54,6 +54,27 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :Dispatch slot
|
|||||||
##after STR_ORDER_STOP_LOCATION_FAR_END
|
##after STR_ORDER_STOP_LOCATION_FAR_END
|
||||||
STR_ORDER_STOP_LOCATION_THROUGH :[through load]
|
STR_ORDER_STOP_LOCATION_THROUGH :[through load]
|
||||||
|
|
||||||
|
##before STR_VIEWPORT_TOWN_POP
|
||||||
|
STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA})
|
||||||
|
##after STR_VIEWPORT_TOWN_POP
|
||||||
|
STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA})
|
||||||
|
|
||||||
|
##before STR_VIEWPORT_TOWN
|
||||||
|
STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN}
|
||||||
|
##after STR_VIEWPORT_TOWN
|
||||||
|
STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN}
|
||||||
|
|
||||||
|
##before STR_VIEWPORT_TOWN_TINY_WHITE
|
||||||
|
STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN}
|
||||||
|
##after STR_VIEWPORT_TOWN_TINY_WHITE
|
||||||
|
STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN}
|
||||||
|
|
||||||
##end-after
|
##end-after
|
||||||
|
|
||||||
STR_UNIT_NAME_VELOCITY_IMPERIAL :mph
|
STR_UNIT_NAME_VELOCITY_IMPERIAL :mph
|
||||||
@@ -1760,20 +1781,6 @@ STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_IMPLICIT :{GRAY}IM
|
|||||||
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_DEPOT :{RED}DE
|
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_DEPOT :{RED}DE
|
||||||
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_OVERFLOW :{RED}{NUM}x
|
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_OVERFLOW :{RED}{NUM}x
|
||||||
|
|
||||||
STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN}
|
|
||||||
|
|
||||||
STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN}
|
|
||||||
|
|
||||||
STR_JUST_DECIMAL :{DECIMAL}
|
STR_JUST_DECIMAL :{DECIMAL}
|
||||||
STR_JUST_DECIMAL1 :{DECIMAL1}
|
STR_JUST_DECIMAL1 :{DECIMAL1}
|
||||||
|
|
||||||
|
@@ -28,6 +28,21 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :Slot de despach
|
|||||||
|
|
||||||
STR_ORDER_STOP_LOCATION_THROUGH :[a través da carga]
|
STR_ORDER_STOP_LOCATION_THROUGH :[a través da carga]
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA})
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN}
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN}
|
||||||
|
|
||||||
STR_UNIT_NAME_VELOCITY_IMPERIAL :mph
|
STR_UNIT_NAME_VELOCITY_IMPERIAL :mph
|
||||||
STR_UNIT_NAME_VELOCITY_METRIC :km/h
|
STR_UNIT_NAME_VELOCITY_METRIC :km/h
|
||||||
STR_UNIT_NAME_VELOCITY_SI :m/s
|
STR_UNIT_NAME_VELOCITY_SI :m/s
|
||||||
@@ -1610,6 +1625,7 @@ STR_CARGO_TYPE_ORDERS_SET_TO_ALL_LABEL :{BLACK}Fixar to
|
|||||||
STR_CARGO_TYPE_ORDERS_SET_TO_ALL_TOOLTIP :{BLACK}Fixar todas as ordes de tipo de cargamento o que está seleccionado no despregable.
|
STR_CARGO_TYPE_ORDERS_SET_TO_ALL_TOOLTIP :{BLACK}Fixar todas as ordes de tipo de cargamento o que está seleccionado no despregable.
|
||||||
|
|
||||||
STR_SCREENSHOT_WORLD_SCREENSHOT_CURRENT_ZOOM :{BLACK}Captura de pantalla de todo o mapa co zoom actual
|
STR_SCREENSHOT_WORLD_SCREENSHOT_CURRENT_ZOOM :{BLACK}Captura de pantalla de todo o mapa co zoom actual
|
||||||
|
|
||||||
STR_SCREENSHOT_TOPOGRAPHY_SCREENSHOT :{BLACK}Captura de pantalla topográfica
|
STR_SCREENSHOT_TOPOGRAPHY_SCREENSHOT :{BLACK}Captura de pantalla topográfica
|
||||||
STR_SCREENSHOT_INDUSTRY_SCREENSHOT :{BLACK}Captura de pantalla de industrias
|
STR_SCREENSHOT_INDUSTRY_SCREENSHOT :{BLACK}Captura de pantalla de industrias
|
||||||
|
|
||||||
@@ -1720,20 +1736,6 @@ STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_IMPLICIT :{GRAY}IM
|
|||||||
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_DEPOT :{RED}DE
|
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_DEPOT :{RED}DE
|
||||||
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_OVERFLOW :{RED}{NUM}x
|
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_OVERFLOW :{RED}{NUM}x
|
||||||
|
|
||||||
STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN}
|
|
||||||
|
|
||||||
STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN}
|
|
||||||
|
|
||||||
STR_JUST_DECIMAL :{DECIMAL}
|
STR_JUST_DECIMAL :{DECIMAL}
|
||||||
STR_JUST_DECIMAL1 :{DECIMAL1}
|
STR_JUST_DECIMAL1 :{DECIMAL1}
|
||||||
|
|
||||||
|
@@ -28,6 +28,21 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :Abfahrztszeitfe
|
|||||||
|
|
||||||
STR_ORDER_STOP_LOCATION_THROUGH :[durchgehendes Laden]
|
STR_ORDER_STOP_LOCATION_THROUGH :[durchgehendes Laden]
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA})
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN}
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN}
|
||||||
|
|
||||||
STR_UNIT_NAME_VELOCITY_IMPERIAL :mph
|
STR_UNIT_NAME_VELOCITY_IMPERIAL :mph
|
||||||
STR_UNIT_NAME_VELOCITY_METRIC :km/h
|
STR_UNIT_NAME_VELOCITY_METRIC :km/h
|
||||||
STR_UNIT_NAME_VELOCITY_SI :m/s
|
STR_UNIT_NAME_VELOCITY_SI :m/s
|
||||||
@@ -1522,6 +1537,7 @@ STR_CARGO_TYPE_ORDERS_SET_TO_ALL_LABEL :{BLACK}Setze al
|
|||||||
STR_CARGO_TYPE_ORDERS_SET_TO_ALL_TOOLTIP :{BLACK}Lege für alle Frachttypaufträge das hier gewählten Verhalten fest
|
STR_CARGO_TYPE_ORDERS_SET_TO_ALL_TOOLTIP :{BLACK}Lege für alle Frachttypaufträge das hier gewählten Verhalten fest
|
||||||
|
|
||||||
STR_SCREENSHOT_WORLD_SCREENSHOT_CURRENT_ZOOM :{BLACK}Screenshot des ganzen Spielfeldes auf der gegenwärtigen Zoomstufe
|
STR_SCREENSHOT_WORLD_SCREENSHOT_CURRENT_ZOOM :{BLACK}Screenshot des ganzen Spielfeldes auf der gegenwärtigen Zoomstufe
|
||||||
|
|
||||||
STR_SCREENSHOT_TOPOGRAPHY_SCREENSHOT :{BLACK}Topographischer Screenshot
|
STR_SCREENSHOT_TOPOGRAPHY_SCREENSHOT :{BLACK}Topographischer Screenshot
|
||||||
STR_SCREENSHOT_INDUSTRY_SCREENSHOT :{BLACK}Industrie-Screenshot
|
STR_SCREENSHOT_INDUSTRY_SCREENSHOT :{BLACK}Industrie-Screenshot
|
||||||
|
|
||||||
@@ -1630,20 +1646,6 @@ STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_IMPLICIT :{GRAY}IM
|
|||||||
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_DEPOT :{RED}DE
|
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_DEPOT :{RED}DE
|
||||||
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_OVERFLOW :{RED}{NUM}x
|
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_OVERFLOW :{RED}{NUM}x
|
||||||
|
|
||||||
STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN}
|
|
||||||
|
|
||||||
STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN}
|
|
||||||
|
|
||||||
STR_JUST_DECIMAL :{DECIMAL}
|
STR_JUST_DECIMAL :{DECIMAL}
|
||||||
STR_JUST_DECIMAL1 :{DECIMAL1}
|
STR_JUST_DECIMAL1 :{DECIMAL1}
|
||||||
|
|
||||||
|
@@ -28,6 +28,21 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :{G=m}배차일
|
|||||||
|
|
||||||
STR_ORDER_STOP_LOCATION_THROUGH :[차례로 나눠 싣기]
|
STR_ORDER_STOP_LOCATION_THROUGH :[차례로 나눠 싣기]
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA})
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN}
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN}
|
||||||
|
|
||||||
STR_UNIT_NAME_VELOCITY_IMPERIAL :mph
|
STR_UNIT_NAME_VELOCITY_IMPERIAL :mph
|
||||||
STR_UNIT_NAME_VELOCITY_METRIC :km/h
|
STR_UNIT_NAME_VELOCITY_METRIC :km/h
|
||||||
STR_UNIT_NAME_VELOCITY_SI :m/s
|
STR_UNIT_NAME_VELOCITY_SI :m/s
|
||||||
@@ -1727,20 +1742,6 @@ STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_IMPLICIT :{GRAY}암
|
|||||||
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_DEPOT :{RED}기
|
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_DEPOT :{RED}기
|
||||||
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_OVERFLOW :{RED}{NUM}x
|
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_OVERFLOW :{RED}{NUM}x
|
||||||
|
|
||||||
STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN}
|
|
||||||
|
|
||||||
STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN}
|
|
||||||
|
|
||||||
STR_JUST_DECIMAL :{DECIMAL}
|
STR_JUST_DECIMAL :{DECIMAL}
|
||||||
STR_JUST_DECIMAL1 :{DECIMAL1}
|
STR_JUST_DECIMAL1 :{DECIMAL1}
|
||||||
|
|
||||||
|
@@ -28,6 +28,21 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :调度条目
|
|||||||
|
|
||||||
STR_ORDER_STOP_LOCATION_THROUGH :[通过式装载]
|
STR_ORDER_STOP_LOCATION_THROUGH :[通过式装载]
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA})
|
||||||
|
STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA})
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN}
|
||||||
|
|
||||||
|
STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN}
|
||||||
|
STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN}
|
||||||
|
|
||||||
STR_UNIT_NAME_VELOCITY_IMPERIAL :英里/小时
|
STR_UNIT_NAME_VELOCITY_IMPERIAL :英里/小时
|
||||||
STR_UNIT_NAME_VELOCITY_METRIC :千米/小时
|
STR_UNIT_NAME_VELOCITY_METRIC :千米/小时
|
||||||
STR_UNIT_NAME_VELOCITY_SI :米/秒
|
STR_UNIT_NAME_VELOCITY_SI :米/秒
|
||||||
@@ -1605,6 +1620,7 @@ STR_CARGO_TYPE_ORDERS_SET_TO_ALL_LABEL :{BLACK}设置
|
|||||||
STR_CARGO_TYPE_ORDERS_SET_TO_ALL_TOOLTIP :{BLACK}设置全部的货物类型顺序到当前所选的
|
STR_CARGO_TYPE_ORDERS_SET_TO_ALL_TOOLTIP :{BLACK}设置全部的货物类型顺序到当前所选的
|
||||||
|
|
||||||
STR_SCREENSHOT_WORLD_SCREENSHOT_CURRENT_ZOOM :{BLACK}以当前缩放比例全地图截图
|
STR_SCREENSHOT_WORLD_SCREENSHOT_CURRENT_ZOOM :{BLACK}以当前缩放比例全地图截图
|
||||||
|
|
||||||
STR_SCREENSHOT_TOPOGRAPHY_SCREENSHOT :{BLACK}地形截图
|
STR_SCREENSHOT_TOPOGRAPHY_SCREENSHOT :{BLACK}地形截图
|
||||||
STR_SCREENSHOT_INDUSTRY_SCREENSHOT :{BLACK}工业截图
|
STR_SCREENSHOT_INDUSTRY_SCREENSHOT :{BLACK}工业截图
|
||||||
|
|
||||||
@@ -1715,20 +1731,6 @@ STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_IMPLICIT :{GRAY}转
|
|||||||
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_DEPOT :{RED}库
|
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_DEPOT :{RED}库
|
||||||
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_OVERFLOW :{RED}{NUM}x
|
STR_VIEWPORT_SHOW_VEHICLE_ROUTE_STEP_OVERFLOW :{RED}{NUM}x
|
||||||
|
|
||||||
STR_VIEWPORT_TOWN_POP_VERY_POOR_RATING :{WHITE}{TOWN} {RED}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_MEDIOCRE_RATING :{WHITE}{TOWN} {ORANGE}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_GOOD_RATING :{WHITE}{TOWN} {YELLOW}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_POP_EXCELLENT_RATING :{WHITE}{TOWN} {GREEN}({COMMA})
|
|
||||||
STR_VIEWPORT_TOWN_VERY_POOR_RATING :{RED}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_MEDIOCRE_RATING :{ORANGE}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_GOOD_RATING :{YELLOW}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_EXCELLENT_RATING :{GREEN}{TOWN}
|
|
||||||
|
|
||||||
STR_VIEWPORT_TOWN_TINY_VERY_POOR_RATING :{TINY_FONT}{RED}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_MEDIOCRE_RATING :{TINY_FONT}{ORANGE}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_GOOD_RATING :{TINY_FONT}{YELLOW}{TOWN}
|
|
||||||
STR_VIEWPORT_TOWN_TINY_EXCELLENT_RATING :{TINY_FONT}{GREEN}{TOWN}
|
|
||||||
|
|
||||||
STR_JUST_DECIMAL :{DECIMAL}
|
STR_JUST_DECIMAL :{DECIMAL}
|
||||||
STR_JUST_DECIMAL1 :{DECIMAL1}
|
STR_JUST_DECIMAL1 :{DECIMAL1}
|
||||||
|
|
||||||
|
@@ -244,6 +244,16 @@ void FileStringReader::HandlePragma(char *str)
|
|||||||
LangString *ent = this->data.Find(str + 6);
|
LangString *ent = this->data.Find(str + 6);
|
||||||
if (ent != nullptr) {
|
if (ent != nullptr) {
|
||||||
this->data.insert_after = ent;
|
this->data.insert_after = ent;
|
||||||
|
this->data.insert_before = nullptr;
|
||||||
|
} else {
|
||||||
|
error("Can't find string to insert after: '%s'", str + 6);
|
||||||
|
}
|
||||||
|
} else if (!memcmp(str, "before ", 7)) {
|
||||||
|
if (this->translation) error("Insert before is only allowed in the base translation.");
|
||||||
|
LangString *ent = this->data.Find(str + 7);
|
||||||
|
if (ent != nullptr) {
|
||||||
|
this->data.insert_after = nullptr;
|
||||||
|
this->data.insert_before = ent;
|
||||||
} else {
|
} else {
|
||||||
error("Can't find string to insert after: '%s'", str + 6);
|
error("Can't find string to insert after: '%s'", str + 6);
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,8 @@ struct LangString {
|
|||||||
int index; ///< The index in the language file.
|
int index; ///< The index in the language file.
|
||||||
int line; ///< Line of string in source-file.
|
int line; ///< Line of string in source-file.
|
||||||
Case *translated_case; ///< Cases of the translation.
|
Case *translated_case; ///< Cases of the translation.
|
||||||
std::unique_ptr<LangString> chain_next;
|
std::unique_ptr<LangString> chain_before;
|
||||||
|
std::unique_ptr<LangString> chain_after;
|
||||||
LangString *default_translation = nullptr;
|
LangString *default_translation = nullptr;
|
||||||
|
|
||||||
LangString(const char *name, const char *english, size_t index, int line);
|
LangString(const char *name, const char *english, size_t index, int line);
|
||||||
@@ -53,6 +54,7 @@ struct StringData {
|
|||||||
int next_string_id; ///< The next string ID to allocate.
|
int next_string_id; ///< The next string ID to allocate.
|
||||||
|
|
||||||
std::vector<std::unique_ptr<LangString>> string_store;
|
std::vector<std::unique_ptr<LangString>> string_store;
|
||||||
|
LangString *insert_before = nullptr;
|
||||||
LangString *insert_after = nullptr;
|
LangString *insert_after = nullptr;
|
||||||
bool override_mode = false;
|
bool override_mode = false;
|
||||||
LangString *default_translation = nullptr;
|
LangString *default_translation = nullptr;
|
||||||
@@ -97,6 +99,8 @@ struct StringReader {
|
|||||||
* Start parsing the file.
|
* Start parsing the file.
|
||||||
*/
|
*/
|
||||||
virtual void ParseFile();
|
virtual void ParseFile();
|
||||||
|
|
||||||
|
void AssignIDs(size_t &next_id, LangString *ls);
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Base class for writing the header, i.e. the STR_XXX to numeric value. */
|
/** Base class for writing the header, i.e. the STR_XXX to numeric value. */
|
||||||
|
@@ -773,8 +773,8 @@ void StringReader::HandleString(char *str)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->data.next_string_id >= 0 && this->data.insert_after != nullptr) {
|
if (this->data.next_string_id >= 0 && (this->data.insert_after != nullptr || this->data.insert_before != nullptr)) {
|
||||||
strgen_error("Cannot use insert_after and id at the same time: '%s'", str);
|
strgen_error("Cannot use insert_after/insert_before and id at the same time: '%s'", str);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate a new LangString */
|
/* Allocate a new LangString */
|
||||||
@@ -789,7 +789,12 @@ void StringReader::HandleString(char *str)
|
|||||||
|
|
||||||
if (this->data.insert_after != nullptr) {
|
if (this->data.insert_after != nullptr) {
|
||||||
LangString *cur = ls.get();
|
LangString *cur = ls.get();
|
||||||
this->data.insert_after->chain_next = std::move(ls);
|
this->data.insert_after->chain_after = std::move(ls);
|
||||||
|
this->data.insert_after = cur;
|
||||||
|
} else if (this->data.insert_before != nullptr) {
|
||||||
|
LangString *cur = ls.get();
|
||||||
|
this->data.insert_before->chain_before = std::move(ls);
|
||||||
|
this->data.insert_before = nullptr;
|
||||||
this->data.insert_after = cur;
|
this->data.insert_after = cur;
|
||||||
} else {
|
} else {
|
||||||
this->data.string_store.push_back(std::move(ls));
|
this->data.string_store.push_back(std::move(ls));
|
||||||
@@ -873,31 +878,37 @@ void StringReader::ParseFile()
|
|||||||
/* Allocate IDs */
|
/* Allocate IDs */
|
||||||
size_t next_id = 0;
|
size_t next_id = 0;
|
||||||
for (const std::unique_ptr<LangString> &item : this->data.string_store) {
|
for (const std::unique_ptr<LangString> &item : this->data.string_store) {
|
||||||
LangString *ls = item.get();
|
this->AssignIDs(next_id, item.get());
|
||||||
do {
|
|
||||||
if (ls->index >= 0) {
|
|
||||||
next_id = ls->index;
|
|
||||||
} else {
|
|
||||||
ls->index = next_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((size_t)ls->index >= this->data.max_strings) {
|
|
||||||
strgen_error("Too many strings, maximum allowed is " PRINTF_SIZE, this->data.max_strings);
|
|
||||||
return;
|
|
||||||
} else if (this->data.strings[ls->index] != nullptr) {
|
|
||||||
strgen_error("String ID 0x%X for '%s' already in use by '%s'", (uint)ls->index, ls->name, this->data.strings[ls->index]->name);
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
this->data.strings[ls->index] = ls;
|
|
||||||
}
|
|
||||||
|
|
||||||
next_id++;
|
|
||||||
ls = ls->chain_next.get();
|
|
||||||
} while (ls != nullptr);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StringReader::AssignIDs(size_t &next_id, LangString *ls)
|
||||||
|
{
|
||||||
|
do {
|
||||||
|
if (ls->chain_before) this->AssignIDs(next_id, ls->chain_before.get());
|
||||||
|
|
||||||
|
if (ls->index >= 0) {
|
||||||
|
next_id = ls->index;
|
||||||
|
} else {
|
||||||
|
ls->index = next_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((size_t)ls->index >= this->data.max_strings) {
|
||||||
|
strgen_error("Too many strings, maximum allowed is " PRINTF_SIZE, this->data.max_strings);
|
||||||
|
return;
|
||||||
|
} else if (this->data.strings[ls->index] != nullptr) {
|
||||||
|
strgen_error("String ID 0x%X for '%s' already in use by '%s'", (uint)ls->index, ls->name, this->data.strings[ls->index]->name);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
this->data.strings[ls->index] = ls;
|
||||||
|
}
|
||||||
|
|
||||||
|
next_id++;
|
||||||
|
ls = ls->chain_after.get();
|
||||||
|
} while (ls != nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write the header information.
|
* Write the header information.
|
||||||
* @param data The data about the string.
|
* @param data The data about the string.
|
||||||
|
Reference in New Issue
Block a user