SPRI: Aligning Large Language Models with Context-Situated Principles