###############################################################################
# Copyright (c) 2007, 2008 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
#
# lowvision.problem
#
BlurProblem_It_is_difficult_for_weak_sighted_to_read_these_characters__1=It is difficult for weak-sighted to read these characters.
ChangableFontRecommendation_Do_not_use_fixed_size_font__1=Do not use fixed-size font.
ColorProblem_Foreground_and_background_colors_are_too_close__1=Foreground and background colors are too close.
DontRelyOnColorRecommendation_Don__t_rely_only_on_color__1=Don\'t rely only on color.
EnlargeLineRecommendation_Enlarge_the_line_height__1=Enlarge the line height.
EnlargeTextRecommendation_Enlarge_the_text__1=Enlarge the text.
EnoughContrastRecommendation_Provide_enough_contrast_between_foreground_and_background_colors__1=Provide enough contrast between foreground and background colors.
FixedSizeFontProblem_Fixed_size_font_is_used__1=Fixed-size font is used.
FixedSmallFontProblem_This_text_is_too_small_and_its_font_size_is_fixed__1=This text is too small and its font size is fixed.
ImageColorProblem_This_image_has_two_or_more_components_whose_colors_are_too_close__1=This image has two or more components whose colors are too close.
SmallFontProblem_This_text_is_too_small__1=This text is too small.
UseAllowedColorRecommendation_Use_a_color_allowed_by_the_design_guideline__1=Use a color allowed by the design guideline.
ProhibitedBothColorsProblem_Both_of_the_foreground_and_background_colors_are_not_allowed_by_the_design_guideline__1=Both foreground and background colors are not allowed by the design guideline.
ProhibitedForegroundColorProblem_The_foreground_color_is_not_allowed_by_the_design_guideline__1=The foreground color is not allowed by the design guideline.
ProhibitedBackgroundColorProblem_The_background_color_is_not_allowed_by_the_design_guideline__1=The background color is not allowed by the design guideline.
ContrastRatio = Contrast Ratio
TargetString = Corresponding Texts
BackgroundImage = (If background image is turned off, the contrast ratio might not be enough.)
#
# lowvision.ScoreUtil
#
PageEvaluation_Bad=Unsatisfactory (needs modification)
PageEvaluation_Excellent=Excellent
PageEvaluation_Good=Good
PageEvaluation_Poor=Passes minimum requirements
#
# lowvision.io.ImageDumpUtil
#
ImageDumpUtil_TrueColor = Please use 'True Color' (24bit/32bit) display.
